From 26472b6bbbf1596a2ed22535e81902a712b84a0c Mon Sep 17 00:00:00 2001 From: Philippe Oberti Date: Tue, 9 Jan 2024 09:41:50 -0600 Subject: [PATCH 01/20] [Security Solution][Timeline] extract and cleanup timeline flyout component (#173880) --- .../app/home/template_wrapper/index.test.tsx | 11 +- .../app/home/template_wrapper/index.tsx | 6 +- .../{bottom_bar => timeline}/index.tsx | 12 +- .../timeline/use_timeline_save_prompt.ts | 2 +- .../flyout/__snapshots__/index.test.tsx.snap | 175 ------------------ .../components/flyout/index.test.tsx | 79 -------- .../timelines/components/flyout/index.tsx | 64 ------- .../timelines/components/flyout/selectors.ts | 21 --- .../public/timelines/store/selectors.ts | 12 ++ .../public/timelines/wrapper/index.test.tsx | 89 +++++++++ .../public/timelines/wrapper/index.tsx | 72 +++++++ 11 files changed, 190 insertions(+), 353 deletions(-) rename x-pack/plugins/security_solution/public/app/home/template_wrapper/{bottom_bar => timeline}/index.tsx (66%) delete mode 100644 x-pack/plugins/security_solution/public/timelines/components/flyout/__snapshots__/index.test.tsx.snap delete mode 100644 x-pack/plugins/security_solution/public/timelines/components/flyout/index.test.tsx delete mode 100644 x-pack/plugins/security_solution/public/timelines/components/flyout/index.tsx delete mode 100644 x-pack/plugins/security_solution/public/timelines/components/flyout/selectors.ts create mode 100644 x-pack/plugins/security_solution/public/timelines/wrapper/index.test.tsx create mode 100644 x-pack/plugins/security_solution/public/timelines/wrapper/index.tsx diff --git a/x-pack/plugins/security_solution/public/app/home/template_wrapper/index.test.tsx b/x-pack/plugins/security_solution/public/app/home/template_wrapper/index.test.tsx index bc57219633a84..322249daeaac1 100644 --- a/x-pack/plugins/security_solution/public/app/home/template_wrapper/index.test.tsx +++ b/x-pack/plugins/security_solution/public/app/home/template_wrapper/index.test.tsx @@ -7,7 +7,6 @@ import { render, waitFor } from '@testing-library/react'; import React from 'react'; - import { TestProviders } from '../../../common/mock'; import { SecuritySolutionTemplateWrapper } from '.'; import { SecurityPageName } from '../../types'; @@ -18,9 +17,9 @@ jest.mock('../../../common/utils/timeline/use_show_timeline', () => ({ useShowTimeline: () => mockUseShowTimeline(), })); -jest.mock('./bottom_bar', () => ({ - ...jest.requireActual('./bottom_bar'), - SecuritySolutionBottomBar: () =>
{'Bottom Bar'}
, +jest.mock('./timeline', () => ({ + ...jest.requireActual('./timeline'), + Timeline: () =>
{'Timeline'}
, })); jest.mock('../../../common/components/navigation/use_security_solution_navigation', () => { @@ -78,7 +77,7 @@ describe('SecuritySolutionTemplateWrapper', () => { await waitFor(() => { expect(getByText('child of wrapper')).toBeInTheDocument(); - expect(getByText('Bottom Bar')).toBeInTheDocument(); + expect(getByText('Timeline')).toBeInTheDocument(); }); }); @@ -89,7 +88,7 @@ describe('SecuritySolutionTemplateWrapper', () => { await waitFor(() => { expect(getByText('child of wrapper')).toBeInTheDocument(); - expect(queryByText('Bottom Bar')).not.toBeInTheDocument(); + expect(queryByText('Timeline')).not.toBeInTheDocument(); }); }); }); diff --git a/x-pack/plugins/security_solution/public/app/home/template_wrapper/index.tsx b/x-pack/plugins/security_solution/public/app/home/template_wrapper/index.tsx index c6268129fc543..17d482ff4c21d 100644 --- a/x-pack/plugins/security_solution/public/app/home/template_wrapper/index.tsx +++ b/x-pack/plugins/security_solution/public/app/home/template_wrapper/index.tsx @@ -15,10 +15,10 @@ import { ExpandableFlyoutProvider } from '@kbn/expandable-flyout'; import { SecuritySolutionFlyout } from '../../../flyout'; import { useSecuritySolutionNavigation } from '../../../common/components/navigation/use_security_solution_navigation'; import { TimelineId } from '../../../../common/types/timeline'; -import { getTimelineShowStatusByIdSelector } from '../../../timelines/components/flyout/selectors'; +import { getTimelineShowStatusByIdSelector } from '../../../timelines/store/selectors'; import { useDeepEqualSelector } from '../../../common/hooks/use_selector'; import { GlobalKQLHeader } from './global_kql_header'; -import { SecuritySolutionBottomBar } from './bottom_bar'; +import { Timeline } from './timeline'; import { useShowTimeline } from '../../../common/utils/timeline/use_show_timeline'; import { useRouteSpy } from '../../../common/utils/route/use_route_spy'; import { SecurityPageName } from '../../types'; @@ -90,7 +90,7 @@ export const SecuritySolutionTemplateWrapper: React.FC - + )} diff --git a/x-pack/plugins/security_solution/public/app/home/template_wrapper/bottom_bar/index.tsx b/x-pack/plugins/security_solution/public/app/home/template_wrapper/timeline/index.tsx similarity index 66% rename from x-pack/plugins/security_solution/public/app/home/template_wrapper/bottom_bar/index.tsx rename to x-pack/plugins/security_solution/public/app/home/template_wrapper/timeline/index.tsx index 81d80666fd583..3438ae4fac1a6 100644 --- a/x-pack/plugins/security_solution/public/app/home/template_wrapper/bottom_bar/index.tsx +++ b/x-pack/plugins/security_solution/public/app/home/template_wrapper/timeline/index.tsx @@ -8,14 +8,18 @@ import React from 'react'; import { useKibana } from '../../../../common/lib/kibana/kibana_react'; import { TimelineId } from '../../../../../common/types/timeline'; -import { Flyout } from '../../../../timelines/components/flyout'; +import { TimelineWrapper } from '../../../../timelines/wrapper'; import { useResolveRedirect } from '../../../../common/hooks/use_resolve_redirect'; -// eslint-disable-next-line react/display-name -export const SecuritySolutionBottomBar = React.memo(() => { +/** + * Adding timeline to the Security Solution plugin + */ +export const Timeline = React.memo(() => { useResolveRedirect(); const { onAppLeave } = useKibana().services; - return ; + return ; }); + +Timeline.displayName = 'Timeline'; diff --git a/x-pack/plugins/security_solution/public/common/hooks/timeline/use_timeline_save_prompt.ts b/x-pack/plugins/security_solution/public/common/hooks/timeline/use_timeline_save_prompt.ts index 4eb7adf15f52e..be0fb1d175118 100644 --- a/x-pack/plugins/security_solution/public/common/hooks/timeline/use_timeline_save_prompt.ts +++ b/x-pack/plugins/security_solution/public/common/hooks/timeline/use_timeline_save_prompt.ts @@ -16,7 +16,7 @@ import { TimelineStatus } from '../../../../common/api/timeline'; import { useKibana } from '../../lib/kibana'; import { useDeepEqualSelector } from '../use_selector'; import { APP_ID, APP_PATH } from '../../../../common/constants'; -import { getTimelineShowStatusByIdSelector } from '../../../timelines/components/flyout/selectors'; +import { getTimelineShowStatusByIdSelector } from '../../../timelines/store/selectors'; import { timelineActions } from '../../../timelines/store'; import { UNSAVED_TIMELINE_SAVE_PROMPT, diff --git a/x-pack/plugins/security_solution/public/timelines/components/flyout/__snapshots__/index.test.tsx.snap b/x-pack/plugins/security_solution/public/timelines/components/flyout/__snapshots__/index.test.tsx.snap deleted file mode 100644 index 22eb87c7f68a3..0000000000000 --- a/x-pack/plugins/security_solution/public/timelines/components/flyout/__snapshots__/index.test.tsx.snap +++ /dev/null @@ -1,175 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`Flyout rendering it renders correctly against snapshot 1`] = ` - -
-
-
- .c3:active, -.c3:focus { - background: transparent; -} - -.c3 > span { - padding: 0; -} - -.c4 { - overflow: hidden; - display: inline-block; - text-overflow: ellipsis; - white-space: nowrap; -} - -.c1 { - overflow-x: auto; -} - -.c2 { - overflow: hidden; -} - -.c0 { - backgroundColor: #1d1e24; - color: #dfe5ef; - padding-inline: 12px; - border-radius: 0px; -} - -
-
-
-
-
-
-
-
- -
-
-
-
- -
-
-
- -
-
-
-
- - - - Unsaved - - - -
-
-
-
-
-
-
- -`; diff --git a/x-pack/plugins/security_solution/public/timelines/components/flyout/index.test.tsx b/x-pack/plugins/security_solution/public/timelines/components/flyout/index.test.tsx deleted file mode 100644 index 73454f6b54b6b..0000000000000 --- a/x-pack/plugins/security_solution/public/timelines/components/flyout/index.test.tsx +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React from 'react'; -import { render, screen } from '@testing-library/react'; -import userEvent from '@testing-library/user-event'; -import '../../../common/mock/react_beautiful_dnd'; - -import { TestProviders } from '../../../common/mock'; -import { TimelineId } from '../../../../common/types/timeline'; -import * as timelineActions from '../../store/actions'; - -import { Flyout } from '.'; - -const mockDispatch = jest.fn(); -jest.mock('react-redux', () => { - const original = jest.requireActual('react-redux'); - - return { - ...original, - useDispatch: () => mockDispatch, - }; -}); - -jest.mock('../timeline', () => ({ - StatefulTimeline: () =>
, -})); - -jest.mock('../../../common/hooks/timeline/use_timeline_save_prompt'); - -describe('Flyout', () => { - const props = { - onAppLeave: jest.fn(), - timelineId: TimelineId.test, - }; - - beforeEach(() => { - mockDispatch.mockClear(); - }); - - describe('rendering', () => { - test('it renders correctly against snapshot', () => { - const { asFragment } = render( - - - - ); - expect(asFragment()).toMatchSnapshot(); - }); - - test('it renders the default flyout state as a bottom bar', () => { - render( - - - - ); - - expect(screen.getByText('Untitled timeline')).toBeInTheDocument(); - }); - - test('should call the onOpen when the mouse is clicked for rendering', () => { - render( - - - - ); - - userEvent.click(screen.getByTestId('flyoutOverlay')); - - expect(mockDispatch).toBeCalledWith( - timelineActions.showTimeline({ id: TimelineId.test, show: true }) - ); - }); - }); -}); diff --git a/x-pack/plugins/security_solution/public/timelines/components/flyout/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/flyout/index.tsx deleted file mode 100644 index 13514d82cbe7f..0000000000000 --- a/x-pack/plugins/security_solution/public/timelines/components/flyout/index.tsx +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { EuiFocusTrap, EuiWindowEvent, keys } from '@elastic/eui'; -import React, { useMemo, useCallback } from 'react'; -import type { AppLeaveHandler } from '@kbn/core/public'; -import { useDispatch } from 'react-redux'; - -import type { TimelineId } from '../../../../common/types/timeline'; -import { useDeepEqualSelector } from '../../../common/hooks/use_selector'; -import { FlyoutBottomBar } from './bottom_bar'; -import { Pane } from './pane'; -import { getTimelineShowStatusByIdSelector } from './selectors'; -import { useTimelineSavePrompt } from '../../../common/hooks/timeline/use_timeline_save_prompt'; -import { timelineActions } from '../../store'; -import { focusActiveTimelineButton } from '../timeline/helpers'; - -interface OwnProps { - timelineId: TimelineId; - onAppLeave: (handler: AppLeaveHandler) => void; -} - -const FlyoutComponent: React.FC = ({ timelineId, onAppLeave }) => { - const getTimelineShowStatus = useMemo(() => getTimelineShowStatusByIdSelector(), []); - const { show } = useDeepEqualSelector((state) => getTimelineShowStatus(state, timelineId)); - const dispatch = useDispatch(); - - const handleClose = useCallback(() => { - dispatch(timelineActions.showTimeline({ id: timelineId, show: false })); - focusActiveTimelineButton(); - }, [dispatch, timelineId]); - - // ESC key closes Pane - const onKeyDown = useCallback( - (ev: KeyboardEvent) => { - if (ev.key === keys.ESCAPE) { - handleClose(); - } - }, - [handleClose] - ); - - useTimelineSavePrompt(timelineId, onAppLeave); - - return ( - <> - - - - - - - ); -}; - -FlyoutComponent.displayName = 'FlyoutComponent'; - -export const Flyout = React.memo(FlyoutComponent); - -Flyout.displayName = 'Flyout'; diff --git a/x-pack/plugins/security_solution/public/timelines/components/flyout/selectors.ts b/x-pack/plugins/security_solution/public/timelines/components/flyout/selectors.ts deleted file mode 100644 index b02284aec6555..0000000000000 --- a/x-pack/plugins/security_solution/public/timelines/components/flyout/selectors.ts +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { createSelector } from 'reselect'; - -import { TimelineTabs } from '../../../../common/types/timeline'; -import { TimelineStatus } from '../../../../common/api/timeline'; -import { timelineSelectors } from '../../store'; - -export const getTimelineShowStatusByIdSelector = () => - createSelector(timelineSelectors.selectTimeline, (timeline) => ({ - activeTab: timeline?.activeTab ?? TimelineTabs.query, - status: timeline?.status ?? TimelineStatus.draft, - show: timeline?.show ?? false, - updated: timeline?.updated ?? undefined, - changed: timeline?.changed ?? false, - })); diff --git a/x-pack/plugins/security_solution/public/timelines/store/selectors.ts b/x-pack/plugins/security_solution/public/timelines/store/selectors.ts index f22dcb3b96fe8..9a2a732679fae 100644 --- a/x-pack/plugins/security_solution/public/timelines/store/selectors.ts +++ b/x-pack/plugins/security_solution/public/timelines/store/selectors.ts @@ -6,10 +6,22 @@ */ import { createSelector } from 'reselect'; +import { timelineSelectors } from '.'; +import { TimelineTabs } from '../../../common/types'; import type { State } from '../../common/store/types'; import type { TimelineModel } from './model'; import type { InsertTimeline, TimelineById } from './types'; +import { TimelineStatus } from '../../../common/api/timeline'; + +export const getTimelineShowStatusByIdSelector = () => + createSelector(timelineSelectors.selectTimeline, (timeline) => ({ + activeTab: timeline?.activeTab ?? TimelineTabs.query, + status: timeline?.status ?? TimelineStatus.draft, + show: timeline?.show ?? false, + updated: timeline?.updated ?? undefined, + changed: timeline?.changed ?? false, + })); const selectTimelineById = (state: State): TimelineById => state.timeline.timelineById; diff --git a/x-pack/plugins/security_solution/public/timelines/wrapper/index.test.tsx b/x-pack/plugins/security_solution/public/timelines/wrapper/index.test.tsx new file mode 100644 index 0000000000000..a88393fdea99f --- /dev/null +++ b/x-pack/plugins/security_solution/public/timelines/wrapper/index.test.tsx @@ -0,0 +1,89 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { render } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; +import '../../common/mock/react_beautiful_dnd'; + +import { TestProviders } from '../../common/mock'; +import { TimelineId } from '../../../common/types/timeline'; +import * as timelineActions from '../store/actions'; +import { TimelineWrapper } from '.'; + +const mockDispatch = jest.fn(); +jest.mock('react-redux', () => { + const original = jest.requireActual('react-redux'); + + return { + ...original, + useDispatch: () => mockDispatch, + }; +}); +jest.mock('../components/timeline', () => ({ + StatefulTimeline: () =>
, +})); +jest.mock('../../common/hooks/timeline/use_timeline_save_prompt'); + +describe('TimelineWrapper', () => { + const props = { + onAppLeave: jest.fn(), + timelineId: TimelineId.test, + }; + + beforeEach(() => { + mockDispatch.mockClear(); + }); + + it('should render correctly the main timeline elements', () => { + const { getByTestId } = render( + + + + ); + expect(getByTestId('flyout-pane')).toBeInTheDocument(); + expect(getByTestId('flyoutBottomBar')).toBeInTheDocument(); + }); + + it('should render the default timeline state as a bottom bar', () => { + const { getByText } = render( + + + + ); + + expect(getByText('Untitled timeline')).toBeInTheDocument(); + }); + + it('should show timeline when bottom bar button is clicked', () => { + const { getByTestId } = render( + + + + ); + + userEvent.click(getByTestId('flyoutOverlay')); + + expect(mockDispatch).toBeCalledWith( + timelineActions.showTimeline({ id: TimelineId.test, show: true }) + ); + }); + + it('should hide timeline when user presses keyboard esc key', () => { + render( + + + + ); + + userEvent.keyboard('{Escape}'); + + expect(mockDispatch).toBeCalledWith( + timelineActions.showTimeline({ id: TimelineId.test, show: false }) + ); + }); +}); diff --git a/x-pack/plugins/security_solution/public/timelines/wrapper/index.tsx b/x-pack/plugins/security_solution/public/timelines/wrapper/index.tsx new file mode 100644 index 0000000000000..7146a50be9049 --- /dev/null +++ b/x-pack/plugins/security_solution/public/timelines/wrapper/index.tsx @@ -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 { EuiFocusTrap, EuiWindowEvent, keys } from '@elastic/eui'; +import React, { useMemo, useCallback } from 'react'; +import type { AppLeaveHandler } from '@kbn/core/public'; +import { useDispatch } from 'react-redux'; +import type { TimelineId } from '../../../common/types'; +import { useDeepEqualSelector } from '../../common/hooks/use_selector'; +import { FlyoutBottomBar } from '../components/flyout/bottom_bar'; +import { Pane } from '../components/flyout/pane'; +import { getTimelineShowStatusByIdSelector } from '../store/selectors'; +import { useTimelineSavePrompt } from '../../common/hooks/timeline/use_timeline_save_prompt'; +import { timelineActions } from '../store'; +import { focusActiveTimelineButton } from '../components/timeline/helpers'; + +interface TimelineWrapperProps { + /** + * Id of the current timeline + */ + timelineId: TimelineId; + /** + * Allows to prompt a save modal when the user tries to leave the Security Solution app + * @param handler + */ + onAppLeave: (handler: AppLeaveHandler) => void; +} + +/** + * This component renders the timeline EuiPortal as well as the bottom bar, and handles the interaction between the two. + * Using EuiFocusTrap, we can trap the focus within the portal when it is open, which prevents closing the portal when clicking outside of it. + */ +export const TimelineWrapper: React.FC = React.memo( + ({ timelineId, onAppLeave }) => { + const getTimelineShowStatus = useMemo(() => getTimelineShowStatusByIdSelector(), []); + const { show } = useDeepEqualSelector((state) => getTimelineShowStatus(state, timelineId)); + const dispatch = useDispatch(); + + const handleClose = useCallback(() => { + dispatch(timelineActions.showTimeline({ id: timelineId, show: false })); + focusActiveTimelineButton(); + }, [dispatch, timelineId]); + + // pressing the ESC key closes the timeline portal + const onKeyDown = useCallback( + (ev: KeyboardEvent) => { + if (ev.key === keys.ESCAPE) { + handleClose(); + } + }, + [handleClose] + ); + + useTimelineSavePrompt(timelineId, onAppLeave); + + return ( + <> + + + + + + + ); + } +); + +TimelineWrapper.displayName = 'TimelineWrapper'; From 5d9b7e7554d98f713efd0e82d89513a492a154a0 Mon Sep 17 00:00:00 2001 From: Julia Bardi <90178898+juliaElastic@users.noreply.github.com> Date: Tue, 9 Jan 2024 16:53:42 +0100 Subject: [PATCH 02/20] [Fleet] support toggle between secret and plain text storage (#174354) ## Summary Closes https://github.com/elastic/kibana/issues/174155 Added functionality to toggle between plain text and secret storage in output secrets. To verify: - go to Fleet Settings, open add output flyout - select a type with secrets (remote ES, kafka, logstash) - check that the secret field can be toggle between plain text and secret storage https://github.com/elastic/kibana/assets/90178898/195af7cd-926c-430c-8268-c606aa6c2430 For edit output form, if a field is stored as a secret, it is not possible to go back to storing as plain text. If an existing output had a secret stored as plain text (before the output secrets were enabled), the field will show up as secret by default with existing value populated. This allows users to re-save the output with secret storage. To verify: - create a new remote es/kafka/logstash output with secret stored as plain text - edit the previously created output, and verify that the secret field is now populated with the stored plain text value - click save on edit form and verify that the secret is stored now as secret ref ### Checklist - [x] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md) - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios --- .../edit_output_flyout/index.test.tsx | 145 ++++++++++++- .../components/edit_output_flyout/index.tsx | 189 ++--------------- .../output_form_elasticsearch.tsx | 63 ++++++ .../edit_output_flyout/output_form_kafka.tsx | 6 +- .../output_form_kafka_authentication.tsx | 66 +++++- .../output_form_logstash.tsx | 194 ++++++++++++++++++ .../output_form_remote_es.tsx | 48 ++++- .../output_form_secret_form_row.test.tsx | 38 +++- .../output_form_secret_form_row.tsx | 53 ++++- .../fleet/server/services/output.test.ts | 26 +++ .../plugins/fleet/server/services/output.ts | 9 + 11 files changed, 620 insertions(+), 217 deletions(-) create mode 100644 x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/output_form_elasticsearch.tsx create mode 100644 x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/output_form_logstash.tsx diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/index.test.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/index.test.tsx index 44ec57cd0aebd..37b3806b0f11b 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/index.test.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/index.test.tsx @@ -6,12 +6,13 @@ */ import React from 'react'; +import { fireEvent, waitFor } from '@testing-library/react'; import type { Output } from '../../../../types'; import { createFleetTestRendererMock } from '../../../../../../mock'; import { useFleetStatus } from '../../../../../../hooks/use_fleet_status'; import { ExperimentalFeaturesService } from '../../../../../../services'; -import { useStartServices } from '../../../../hooks'; +import { useStartServices, sendPutOutput } from '../../../../hooks'; import { EditOutputFlyout } from '.'; @@ -31,9 +32,15 @@ jest.mock('../../../../hooks', () => { ...jest.requireActual('../../../../hooks'), useBreadcrumbs: jest.fn(), useStartServices: jest.fn(), + sendPutOutput: jest.fn(), }; }); +jest.mock('./confirm_update', () => ({ + confirmUpdate: () => jest.fn().mockResolvedValue(true), +})); + +const mockSendPutOutput = sendPutOutput as jest.MockedFunction; const mockUseStartServices = useStartServices as jest.Mock; const mockedUsedFleetStatus = useFleetStatus as jest.MockedFunction; @@ -80,7 +87,11 @@ const remoteEsOutputLabels = ['Hosts', 'Service Token']; describe('EditOutputFlyout', () => { const mockStartServices = (isServerlessEnabled?: boolean) => { mockUseStartServices.mockReturnValue({ - notifications: { toasts: {} }, + notifications: { + toasts: { + addError: jest.fn(), + }, + }, docLinks: { links: { fleet: {}, logstash: {}, kibana: {} }, }, @@ -92,6 +103,9 @@ describe('EditOutputFlyout', () => { beforeEach(() => { mockStartServices(false); + jest.clearAllMocks(); + // mockSendPutOutput.mockClear(); + // mockedUsedFleetStatus.mockClear(); }); it('should render the flyout if there is not output provided', async () => { @@ -174,6 +188,102 @@ describe('EditOutputFlyout', () => { }); }); + it('should populate secret input with plain text value when editing kafka output', async () => { + jest + .spyOn(ExperimentalFeaturesService, 'get') + .mockReturnValue({ outputSecretsStorage: true, kafkaOutput: true }); + const { utils } = renderFlyout({ + type: 'kafka', + name: 'kafka output', + id: 'outputK', + is_default: false, + is_default_monitoring: false, + hosts: ['kafka:443'], + topics: [{ topic: 'topic' }], + auth_type: 'ssl', + version: '1.0.0', + ssl: { certificate: 'cert', key: 'key', verification_mode: 'full' }, + compression: 'none', + }); + + expect((utils.getByTestId('kafkaSslKeySecretInput') as any).value).toEqual('key'); + + fireEvent.click(utils.getByText('Save and apply settings')); + + await waitFor(() => { + expect(mockSendPutOutput).toHaveBeenCalledWith( + 'outputK', + expect.objectContaining({ + secrets: { ssl: { key: 'key' } }, + ssl: { certificate: 'cert', key: '', verification_mode: 'full' }, + }) + ); + }); + }); + + it('should populate secret password input with plain text value when editing kafka output', async () => { + jest + .spyOn(ExperimentalFeaturesService, 'get') + .mockReturnValue({ outputSecretsStorage: true, kafkaOutput: true }); + const { utils } = renderFlyout({ + type: 'kafka', + name: 'kafka output', + id: 'outputK', + is_default: false, + is_default_monitoring: false, + hosts: ['kafka:443'], + topics: [{ topic: 'topic' }], + auth_type: 'user_pass', + version: '1.0.0', + username: 'user', + password: 'pass', + compression: 'none', + }); + + expect( + (utils.getByTestId('settingsOutputsFlyout.kafkaPasswordSecretInput') as any).value + ).toEqual('pass'); + + fireEvent.click(utils.getByText('Save and apply settings')); + + await waitFor(() => { + expect(mockSendPutOutput).toHaveBeenCalledWith( + 'outputK', + expect.objectContaining({ + secrets: { password: 'pass' }, + }) + ); + expect((mockSendPutOutput.mock.calls[0][1] as any).password).toBeUndefined(); + }); + }); + + it('should populate secret input with plain text value when editing logstash output', async () => { + jest.spyOn(ExperimentalFeaturesService, 'get').mockReturnValue({ outputSecretsStorage: true }); + const { utils } = renderFlyout({ + type: 'logstash', + name: 'logstash output', + id: 'outputL', + is_default: false, + is_default_monitoring: false, + hosts: ['logstash'], + ssl: { certificate: 'cert', key: 'key', certificate_authorities: [] }, + }); + + expect((utils.getByTestId('sslKeySecretInput') as HTMLInputElement).value).toEqual('key'); + + fireEvent.click(utils.getByText('Save and apply settings')); + + await waitFor(() => { + expect(mockSendPutOutput).toHaveBeenCalledWith( + 'outputL', + expect.objectContaining({ + secrets: { ssl: { key: 'key' } }, + ssl: { certificate: 'cert', certificate_authorities: [] }, + }) + ); + }); + }); + it('should show a callout in the flyout if the selected output is logstash and no encrypted key is set', async () => { mockedUsedFleetStatus.mockReturnValue({ missingOptionalFeatures: ['encrypted_saved_object_encryption_key_required'], @@ -214,6 +324,37 @@ describe('EditOutputFlyout', () => { expect(utils.queryByTestId('serviceTokenSecretInput')).not.toBeNull(); }); + it('should populate secret service token input with plain text value when editing remote ES output', async () => { + jest + .spyOn(ExperimentalFeaturesService, 'get') + .mockReturnValue({ remoteESOutput: true, outputSecretsStorage: true }); + const { utils } = renderFlyout({ + type: 'remote_elasticsearch', + name: 'remote es output', + id: 'outputR', + is_default: false, + is_default_monitoring: false, + service_token: '1234', + hosts: ['https://localhost:9200'], + }); + + expect((utils.getByTestId('serviceTokenSecretInput') as HTMLInputElement).value).toEqual( + '1234' + ); + + fireEvent.click(utils.getByText('Save and apply settings')); + + await waitFor(() => { + expect(mockSendPutOutput).toHaveBeenCalledWith( + 'outputR', + expect.objectContaining({ + secrets: { service_token: '1234' }, + service_token: undefined, + }) + ); + }); + }); + it('should not display remote ES output in type lists if serverless', async () => { jest.spyOn(ExperimentalFeaturesService, 'get').mockReturnValue({ remoteESOutput: true }); mockUseStartServices.mockReset(); diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/index.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/index.tsx index daebac615d6eb..ed4774ea7470c 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/index.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/index.tsx @@ -22,7 +22,6 @@ import { EuiForm, EuiFormRow, EuiFieldText, - EuiTextArea, EuiSelect, EuiSwitch, EuiCallOut, @@ -50,22 +49,20 @@ import { ExperimentalFeaturesService } from '../../../../../../services'; import { outputType, RESERVED_CONFIG_YML_KEYS } from '../../../../../../../common/constants'; -import { MultiRowInput } from '../multi_row_input'; import type { Output, FleetProxy } from '../../../../types'; import { FLYOUT_MAX_WIDTH } from '../../constants'; -import { LogstashInstructions } from '../logstash_instructions'; -import { useBreadcrumbs, useStartServices } from '../../../../hooks'; -import { SecretFormRow } from './output_form_secret_form_row'; +import { useBreadcrumbs, useStartServices } from '../../../../hooks'; import { OutputFormKafkaSection } from './output_form_kafka'; import { YamlCodeEditorWithPlaceholder } from './yaml_code_editor_with_placeholder'; import { useOutputForm } from './use_output_form'; -import { EncryptionKeyRequiredCallout } from './encryption_key_required_callout'; import { AdvancedOptionsSection } from './advanced_options_section'; import { OutputFormRemoteEsSection } from './output_form_remote_es'; import { OutputHealth } from './output_health'; +import { OutputFormLogstashSection } from './output_form_logstash'; +import { OutputFormElasticsearchSection } from './output_form_elasticsearch'; export interface EditOutputFlyoutProps { output?: Output; @@ -85,9 +82,8 @@ export const EditOutputFlyout: React.FunctionComponent = const { euiTheme } = useEuiTheme(); const { outputSecretsStorage: isOutputSecretsStorageEnabled } = ExperimentalFeaturesService.get(); const [useSecretsStorage, setUseSecretsStorage] = React.useState(isOutputSecretsStorageEnabled); - - const onUsePlainText = () => { - setUseSecretsStorage(false); + const onToggleSecretStorage = (secretEnabled: boolean) => { + setUseSecretsStorage(secretEnabled); }; const proxiesOptions = useMemo( @@ -118,174 +114,17 @@ export const EditOutputFlyout: React.FunctionComponent = const renderLogstashSection = () => { return ( - <> - {!form.hasEncryptedSavedObjectConfigured && ( - <> - - - - )} - - - - - - - ), - }} - /> - } - label={i18n.translate('xpack.fleet.settings.editOutputFlyout.logstashHostsInputLabel', { - defaultMessage: 'Logstash hosts', - })} - {...inputs.logstashHostsInput.props} - /> - - - } - {...inputs.sslCertificateInput.formRowProps} - > - - - {(output && output?.ssl?.key) || !useSecretsStorage ? ( - - } - {...inputs.sslKeyInput.formRowProps} - > - - - ) : ( - - - - )} - + ); }; const renderElasticsearchSection = () => { - return ( - <> - - - } - {...inputs.caTrustedFingerprintInput.formRowProps} - > - - - - ); + return ; }; const renderRemoteElasticsearchSection = () => { @@ -294,7 +133,7 @@ export const EditOutputFlyout: React.FunctionComponent = ); } @@ -307,7 +146,7 @@ export const EditOutputFlyout: React.FunctionComponent = ); } diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/output_form_elasticsearch.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/output_form_elasticsearch.tsx new file mode 100644 index 0000000000000..877c285e391c6 --- /dev/null +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/output_form_elasticsearch.tsx @@ -0,0 +1,63 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { EuiFieldText, EuiFormRow } from '@elastic/eui'; +import { FormattedMessage } from '@kbn/i18n-react'; +import { i18n } from '@kbn/i18n'; + +import { MultiRowInput } from '../multi_row_input'; + +import type { OutputFormInputsType } from './use_output_form'; + +interface Props { + inputs: OutputFormInputsType; +} + +export const OutputFormElasticsearchSection: React.FunctionComponent = (props) => { + const { inputs } = props; + + return ( + <> + + + } + {...inputs.caTrustedFingerprintInput.formRowProps} + > + + + + ); +}; diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/output_form_kafka.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/output_form_kafka.tsx index 66493b328697c..a9c5c587c60f7 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/output_form_kafka.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/output_form_kafka.tsx @@ -33,11 +33,11 @@ import type { OutputFormInputsType } from './use_output_form'; interface Props { inputs: OutputFormInputsType; useSecretsStorage: boolean; - onUsePlainText: () => void; + onToggleSecretStorage: (secretEnabled: boolean) => void; } export const OutputFormKafkaSection: React.FunctionComponent = (props) => { - const { inputs, useSecretsStorage, onUsePlainText } = props; + const { inputs, useSecretsStorage, onToggleSecretStorage } = props; const { docLinks } = useStartServices(); @@ -109,7 +109,7 @@ export const OutputFormKafkaSection: React.FunctionComponent = (props) => diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/output_form_kafka_authentication.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/output_form_kafka_authentication.tsx index b70a9828371a4..5d21567cbbb35 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/output_form_kafka_authentication.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/output_form_kafka_authentication.tsx @@ -5,7 +5,7 @@ * 2.0. */ -import React, { useMemo } from 'react'; +import React, { useEffect, useMemo } from 'react'; import { i18n } from '@kbn/i18n'; import { @@ -72,9 +72,46 @@ const kafkaAuthenticationsOptions = [ export const OutputFormKafkaAuthentication: React.FunctionComponent<{ inputs: OutputFormInputsType; useSecretsStorage: boolean; - onUsePlainText: () => void; + onToggleSecretStorage: (secretEnabled: boolean) => void; }> = (props) => { - const { inputs, useSecretsStorage, onUsePlainText } = props; + const { inputs, useSecretsStorage, onToggleSecretStorage } = props; + const [isFirstLoad, setIsFirstLoad] = React.useState(true); + + useEffect(() => { + if (!isFirstLoad) return; + setIsFirstLoad(false); + // populate the secret input with the value of the plain input in order to re-save the output with secret storage + if (useSecretsStorage) { + if (inputs.kafkaAuthPasswordInput.value && !inputs.kafkaAuthPasswordSecretInput.value) { + inputs.kafkaAuthPasswordSecretInput.setValue(inputs.kafkaAuthPasswordInput.value); + inputs.kafkaAuthPasswordInput.clear(); + } + + if (inputs.kafkaSslKeyInput.value && !inputs.kafkaSslKeySecretInput.value) { + inputs.kafkaSslKeySecretInput.setValue(inputs.kafkaSslKeyInput.value); + inputs.kafkaSslKeyInput.clear(); + } + } + }, [ + useSecretsStorage, + inputs.kafkaAuthPasswordInput, + inputs.kafkaAuthPasswordSecretInput, + inputs.kafkaSslKeyInput, + inputs.kafkaSslKeySecretInput, + isFirstLoad, + setIsFirstLoad, + ]); + + const onToggleSecretAndClearValue = (secretEnabled: boolean) => { + if (secretEnabled) { + inputs.kafkaAuthPasswordInput.clear(); + inputs.kafkaSslKeyInput.clear(); + } else { + inputs.kafkaAuthPasswordSecretInput.setValue(''); + inputs.kafkaSslKeySecretInput.setValue(''); + } + onToggleSecretStorage(secretEnabled); + }; const kafkaVerificationModeOptions = useMemo( () => @@ -148,8 +185,8 @@ export const OutputFormKafkaAuthentication: React.FunctionComponent<{ )} /> - {inputs.kafkaSslKeyInput.value || !useSecretsStorage ? ( - } {...inputs.kafkaSslKeyInput.formRowProps} + useSecretsStorage={useSecretsStorage} + onToggleSecretStorage={onToggleSecretAndClearValue} > - + ) : ( - {inputs.kafkaAuthPasswordInput.value || !useSecretsStorage ? ( - } {...inputs.kafkaAuthPasswordInput.formRowProps} + useSecretsStorage={useSecretsStorage} + onToggleSecretStorage={onToggleSecretAndClearValue} > - + ) : ( void; + hasEncryptedSavedObjectConfigured: boolean; +} + +export const OutputFormLogstashSection: React.FunctionComponent = (props) => { + const { inputs, useSecretsStorage, onToggleSecretStorage, hasEncryptedSavedObjectConfigured } = + props; + const { docLinks } = useStartServices(); + + const [isFirstLoad, setIsFirstLoad] = React.useState(true); + + useEffect(() => { + if (!isFirstLoad) return; + setIsFirstLoad(false); + // populate the secret input with the value of the plain input in order to re-save the output with secret storage + if (useSecretsStorage) { + if (inputs.sslKeyInput.value && !inputs.sslKeySecretInput.value) { + inputs.sslKeySecretInput.setValue(inputs.sslKeyInput.value); + inputs.sslKeyInput.clear(); + } + } + }, [ + useSecretsStorage, + inputs.sslKeyInput, + inputs.sslKeySecretInput, + isFirstLoad, + setIsFirstLoad, + ]); + + const onToggleSecretAndClearValue = (secretEnabled: boolean) => { + if (secretEnabled) { + inputs.sslKeyInput.clear(); + } else { + inputs.sslKeySecretInput.setValue(''); + } + onToggleSecretStorage(secretEnabled); + }; + + return ( + <> + {!hasEncryptedSavedObjectConfigured && ( + <> + + + + )} + + + + + + + ), + }} + /> + } + label={i18n.translate('xpack.fleet.settings.editOutputFlyout.logstashHostsInputLabel', { + defaultMessage: 'Logstash hosts', + })} + {...inputs.logstashHostsInput.props} + /> + + + } + {...inputs.sslCertificateInput.formRowProps} + > + + + {!useSecretsStorage ? ( + + } + {...inputs.sslKeyInput.formRowProps} + useSecretsStorage={useSecretsStorage} + onToggleSecretStorage={onToggleSecretAndClearValue} + > + + + ) : ( + + + + )} + + ); +}; diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/output_form_remote_es.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/output_form_remote_es.tsx index 86a89f05ef756..1b44bdc97ed8f 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/output_form_remote_es.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/output_form_remote_es.tsx @@ -5,8 +5,8 @@ * 2.0. */ -import React from 'react'; -import { EuiCallOut, EuiCodeBlock, EuiFieldText, EuiFormRow, EuiSpacer } from '@elastic/eui'; +import React, { useEffect } from 'react'; +import { EuiCallOut, EuiCodeBlock, EuiFieldText, EuiSpacer } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n-react'; import { i18n } from '@kbn/i18n'; @@ -18,11 +18,40 @@ import { SecretFormRow } from './output_form_secret_form_row'; interface Props { inputs: OutputFormInputsType; useSecretsStorage: boolean; - onUsePlainText: () => void; + onToggleSecretStorage: (secretEnabled: boolean) => void; } export const OutputFormRemoteEsSection: React.FunctionComponent = (props) => { - const { inputs, useSecretsStorage, onUsePlainText } = props; + const { inputs, useSecretsStorage, onToggleSecretStorage } = props; + + const [isFirstLoad, setIsFirstLoad] = React.useState(true); + + useEffect(() => { + if (!isFirstLoad) return; + setIsFirstLoad(false); + // populate the secret input with the value of the plain input in order to re-save the output with secret storage + if (useSecretsStorage) { + if (inputs.serviceTokenInput.value && !inputs.serviceTokenSecretInput.value) { + inputs.serviceTokenSecretInput.setValue(inputs.serviceTokenInput.value); + inputs.serviceTokenInput.clear(); + } + } + }, [ + useSecretsStorage, + inputs.serviceTokenInput, + inputs.serviceTokenSecretInput, + isFirstLoad, + setIsFirstLoad, + ]); + + const onToggleSecretAndClearValue = (secretEnabled: boolean) => { + if (secretEnabled) { + inputs.serviceTokenInput.clear(); + } else { + inputs.serviceTokenSecretInput.setValue(''); + } + onToggleSecretStorage(secretEnabled); + }; return ( <> @@ -41,8 +70,8 @@ export const OutputFormRemoteEsSection: React.FunctionComponent = (props) isUrl /> - {inputs.serviceTokenInput.value || !useSecretsStorage ? ( - = (props) /> } {...inputs.serviceTokenInput.formRowProps} + useSecretsStorage={useSecretsStorage} + onToggleSecretStorage={onToggleSecretAndClearValue} > = (props) } )} /> - + ) : ( = (props) })} {...inputs.serviceTokenSecretInput.formRowProps} cancelEdit={inputs.serviceTokenSecretInput.cancelEdit} - onUsePlainText={onUsePlainText} + useSecretsStorage={useSecretsStorage} + onToggleSecretStorage={onToggleSecretAndClearValue} > { const title = 'Test Secret'; const initialValue = 'initial value'; const clear = jest.fn(); - const onUsePlainText = jest.fn(); + const onToggleSecretStorage = jest.fn(); const cancelEdit = jest.fn(); + const useSecretsStorage = true; it('should switch to edit mode when the replace button is clicked', () => { const { getByText, queryByText, container } = render( @@ -23,7 +24,8 @@ describe('SecretFormRow', () => { title={title} initialValue={initialValue} clear={clear} - onUsePlainText={onUsePlainText} + useSecretsStorage={useSecretsStorage} + onToggleSecretStorage={onToggleSecretStorage} cancelEdit={cancelEdit} > @@ -46,7 +48,8 @@ describe('SecretFormRow', () => { title={title} initialValue={initialValue} clear={clear} - onUsePlainText={onUsePlainText} + useSecretsStorage={useSecretsStorage} + onToggleSecretStorage={onToggleSecretStorage} cancelEdit={cancelEdit} > @@ -59,12 +62,13 @@ describe('SecretFormRow', () => { expect(cancelEdit).toHaveBeenCalled(); }); - it('should call the onUsePlainText function when the revert link is clicked', () => { + it('should call the onToggleSecretStorage function when the revert link is clicked', () => { const { getByText } = render( @@ -73,7 +77,7 @@ describe('SecretFormRow', () => { fireEvent.click(getByText('Click to use plain text storage instead')); - expect(onUsePlainText).toHaveBeenCalled(); + expect(onToggleSecretStorage).toHaveBeenCalledWith(false); }); it('should not display the cancel change button when no initial value is provided', () => { @@ -81,7 +85,8 @@ describe('SecretFormRow', () => { @@ -91,4 +96,23 @@ describe('SecretFormRow', () => { expect(queryByTestId('secretCancelChangeBtn')).not.toBeInTheDocument(); }); + + it('should call the onToggleSecretStorage function when the use secret storage button is clicked in plain text mode', () => { + const { getByText, queryByTestId } = render( + Test Field
} + useSecretsStorage={false} + onToggleSecretStorage={onToggleSecretStorage} + > + + + ); + + expect(queryByTestId('lockIcon')).not.toBeInTheDocument(); + expect(getByText('Test Field')).toBeInTheDocument(); + + fireEvent.click(getByText('Click to use secret storage instead')); + + expect(onToggleSecretStorage).toHaveBeenCalledWith(true); + }); }); diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/output_form_secret_form_row.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/output_form_secret_form_row.tsx index 868c80b895fa3..2028c6107bfd3 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/output_form_secret_form_row.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/output_form_secret_form_row.tsx @@ -23,13 +23,15 @@ import { i18n } from '@kbn/i18n'; export const SecretFormRow: React.FC<{ fullWidth?: boolean; children: ConstructorParameters[0]['children']; + useSecretsStorage: boolean; + onToggleSecretStorage: (secretEnabled: boolean) => void; error?: string[]; isInvalid?: boolean; - title: string; - clear: () => void; + title?: string; + clear?: () => void; initialValue?: any; - onUsePlainText: () => void; - cancelEdit: () => void; + cancelEdit?: () => void; + label?: JSX.Element; }> = ({ fullWidth, error, @@ -38,8 +40,10 @@ export const SecretFormRow: React.FC<{ clear, title, initialValue, - onUsePlainText, + onToggleSecretStorage, cancelEdit, + useSecretsStorage, + label, }) => { const hasInitialValue = !!initialValue; const [editMode, setEditMode] = useState(!initialValue); @@ -77,7 +81,7 @@ export const SecretFormRow: React.FC<{ { setEditMode(false); - cancelEdit(); + if (cancelEdit) cancelEdit(); }} color="primary" iconType="refresh" @@ -105,9 +109,9 @@ export const SecretFormRow: React.FC<{ ); - const label = ( + const secretLabel = ( - +   {title}   @@ -128,7 +132,7 @@ export const SecretFormRow: React.FC<{ defaultMessage="This field uses secret storage and requires Fleet Server v8.12.0 and above. {revertLink}" values={{ revertLink: ( - + onToggleSecretStorage(false)} color="primary" size="xs"> ) : undefined; + const plainTextHelp = ( + onToggleSecretStorage(true)} color="primary" size="xs"> + + + ), + }} + /> + ); + const inputComponent = editMode ? editValue : valueHiddenPanel; - return ( + return useSecretsStorage ? ( {inputComponent} + ) : ( + + {inputComponent} + ); }; diff --git a/x-pack/plugins/fleet/server/services/output.test.ts b/x-pack/plugins/fleet/server/services/output.test.ts index 48b8aaa808112..b22e001739e7c 100644 --- a/x-pack/plugins/fleet/server/services/output.test.ts +++ b/x-pack/plugins/fleet/server/services/output.test.ts @@ -137,6 +137,14 @@ function getMockedSoClient( }); } + case outputIdToUuid('existing-remote-es-output'): { + return mockOutputSO('existing-remote-es-output', { + type: 'remote_elasticsearch', + is_default: false, + service_token: 'plain', + }); + } + default: throw new Error('not found: ' + id); } @@ -1699,6 +1707,24 @@ describe('Output Service', () => { }) ).resolves.not.toThrow(); }); + + it('Should delete service_token if updated remote es output does not have a value', async () => { + const soClient = getMockedSoClient({}); + mockedAgentPolicyService.list.mockResolvedValue({ + items: [{}], + } as unknown as ReturnType); + mockedAgentPolicyService.hasAPMIntegration.mockReturnValue(false); + mockedAgentPolicyService.hasFleetServerIntegration.mockReturnValue(false); + + await outputService.update(soClient, esClientMock, 'existing-remote-es-output', { + type: 'remote_elasticsearch', + }); + + expect(soClient.update).toBeCalledWith(expect.anything(), expect.anything(), { + type: 'remote_elasticsearch', + service_token: null, + }); + }); }); describe('delete', () => { diff --git a/x-pack/plugins/fleet/server/services/output.ts b/x-pack/plugins/fleet/server/services/output.ts index b789bbb5d8cc2..9d116941aa6dd 100644 --- a/x-pack/plugins/fleet/server/services/output.ts +++ b/x-pack/plugins/fleet/server/services/output.ts @@ -969,6 +969,15 @@ class OutputService { updateData.hosts = updateData.hosts.map(normalizeHostsForAgents); } + if ( + data.type === outputType.RemoteElasticsearch && + updateData.type === outputType.RemoteElasticsearch + ) { + if (!data.service_token) { + updateData.service_token = null; + } + } + if (!data.preset && data.type === outputType.Elasticsearch) { updateData.preset = getDefaultPresetForEsOutput(data.config_yaml ?? '', safeLoad); } From 537614c36ef17a9016e22f9efc6e2f91543210fa Mon Sep 17 00:00:00 2001 From: Nathan Reese Date: Tue, 9 Jan 2024 09:19:14 -0700 Subject: [PATCH 03/20] [maps] clean up isLayerGroup and isVectorGroup type guards (#174402) PR updates type guards to include return type narrowing to avoid needing to cast results --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .../public/actions/data_request_actions.ts | 8 ++--- .../maps/public/actions/layer_actions.ts | 23 ++++++------- .../maps/public/actions/map_actions.ts | 10 +++--- .../layers/__fixtures__/mock_vector_layer.ts | 22 +++++++++++++ .../layers/layer_group/layer_group.tsx | 2 +- .../classes/layers/vector_layer/index.ts | 6 +++- .../layers/vector_layer/vector_layer.test.tsx | 28 +++++++++++++++- .../layers/vector_layer/vector_layer.tsx | 22 +++++++++++-- .../sources/vector_source/vector_source.tsx | 7 ++++ .../components/remove_layer_confirm_modal.tsx | 4 +-- .../edit_layer_panel.test.tsx.snap | 16 +++++++++ .../edit_layer_panel.test.tsx | 2 ++ .../edit_layer_panel/edit_layer_panel.tsx | 17 +++++----- .../edit_layer_panel/index.ts | 13 +++++--- .../layer_settings/layer_settings.tsx | 33 ++++++++----------- .../tooltip_control/tooltip_control.test.tsx | 2 ++ .../tooltip_control/tooltip_control.tsx | 2 +- .../toc_entry_actions_popover.tsx | 24 +++++++------- .../maps/public/selectors/map_selectors.ts | 8 ++--- 19 files changed, 172 insertions(+), 77 deletions(-) create mode 100644 x-pack/plugins/maps/public/classes/layers/__fixtures__/mock_vector_layer.ts diff --git a/x-pack/plugins/maps/public/actions/data_request_actions.ts b/x-pack/plugins/maps/public/actions/data_request_actions.ts index c700859787cbe..f545063bba4dc 100644 --- a/x-pack/plugins/maps/public/actions/data_request_actions.ts +++ b/x-pack/plugins/maps/public/actions/data_request_actions.ts @@ -45,7 +45,7 @@ import { } from './map_action_constants'; import { InnerJoin } from '../classes/joins/inner_join'; import { ILayer } from '../classes/layers/layer'; -import { IVectorLayer } from '../classes/layers/vector_layer'; +import { hasVectorLayerMethod } from '../classes/layers/vector_layer'; import { DataRequestMeta, MapExtent, DataFilters } from '../../common/descriptor_types'; import { DataRequestAbortError } from '../classes/util/data_request'; import { scaleBounds } from '../../common/elasticsearch_util'; @@ -175,7 +175,7 @@ function syncDataForAllJoinLayers() { ) => { const syncPromises = getLayerList(getState()) .filter((layer) => { - return 'hasJoins' in layer ? (layer as IVectorLayer).hasJoins() : false; + return hasVectorLayerMethod(layer, 'hasJoins') ? layer.hasJoins() : false; }) .map((layer) => { return dispatch(syncDataForLayer(layer, false)); @@ -438,11 +438,11 @@ function setGotoWithBounds(bounds: MapExtent) { function setJoinError(layerId: string, joinIndex: number, error?: string) { return (dispatch: Dispatch, getState: () => MapStoreState) => { const layer = getLayerById(layerId, getState()); - if (!layer || !('getJoins' in layer)) { + if (!layer || !hasVectorLayerMethod(layer, 'getJoins')) { return; } - const joins = (layer as IVectorLayer).getJoins().map((join: InnerJoin) => { + const joins = layer.getJoins().map((join: InnerJoin) => { return join.toDescriptor(); }); diff --git a/x-pack/plugins/maps/public/actions/layer_actions.ts b/x-pack/plugins/maps/public/actions/layer_actions.ts index 7b7785f2033c6..adcd1242adce0 100644 --- a/x-pack/plugins/maps/public/actions/layer_actions.ts +++ b/x-pack/plugins/maps/public/actions/layer_actions.ts @@ -61,7 +61,7 @@ import { VectorStyleDescriptor, } from '../../common/descriptor_types'; import { ILayer } from '../classes/layers/layer'; -import { IVectorLayer } from '../classes/layers/vector_layer'; +import { hasVectorLayerMethod } from '../classes/layers/vector_layer'; import { OnSourceChangeArgs } from '../classes/sources/source'; import { DRAW_MODE, @@ -265,7 +265,7 @@ export function setLayerVisibility(layerId: string, makeVisible: boolean) { } if (isLayerGroup(layer)) { - (layer as LayerGroup).getChildren().forEach((childLayer) => { + layer.getChildren().forEach((childLayer) => { dispatch(setLayerVisibility(childLayer.getId(), makeVisible)); }); } @@ -401,7 +401,8 @@ function updateMetricsProp(layerId: string, value: unknown) { getState: () => MapStoreState ) => { const layer = getLayerById(layerId, getState()); - const previousFields = await (layer as IVectorLayer).getFields(); + const previousFields = + layer && hasVectorLayerMethod(layer, 'getFields') ? await layer.getFields() : []; dispatch({ type: UPDATE_SOURCE_PROP, layerId, @@ -694,7 +695,7 @@ function removeLayerFromLayerList(layerId: string) { } if (isLayerGroup(layerGettingRemoved)) { - (layerGettingRemoved as LayerGroup).getChildren().forEach((childLayer) => { + layerGettingRemoved.getChildren().forEach((childLayer) => { dispatch(removeLayerFromLayerList(childLayer.getId())); }); } @@ -716,11 +717,11 @@ function updateStyleProperties(layerId: string, previousFields?: IField[]) { return; } - if (!('getFields' in targetLayer)) { + if (!hasVectorLayerMethod(targetLayer, 'getFields')) { return; } - const nextFields = await (targetLayer as IVectorLayer).getFields(); // take into account all fields, since labels can be driven by any field (source or join) + const nextFields = await targetLayer.getFields(); // take into account all fields, since labels can be driven by any field (source or join) const { hasChanges, nextStyleDescriptor } = await ( style as IVectorStyle ).getDescriptorWithUpdatedStyleProps(nextFields, getMapColors(getState()), previousFields); @@ -769,7 +770,7 @@ export function updateLayerStyleForSelectedLayer(styleDescriptor: StyleDescripto export function setJoinsForLayer(layer: ILayer, joins: Array>) { return async (dispatch: ThunkDispatch) => { - const previousFields = await (layer as IVectorLayer).getFields(); + const previousFields = hasVectorLayerMethod(layer, 'getFields') ? await layer.getFields() : []; dispatch({ type: SET_JOINS, layerId: layer.getId(), @@ -864,8 +865,8 @@ function clearInspectorAdapters(layer: ILayer, adapters: Adapters) { }); } - if (adapters.requests && 'getValidJoins' in layer) { - (layer as IVectorLayer).getValidJoins().forEach((join) => { + if (adapters.requests && hasVectorLayerMethod(layer, 'getValidJoins')) { + layer.getValidJoins().forEach((join) => { adapters.requests!.resetRequest(join.getRightJoinSource().getId()); }); } @@ -916,7 +917,7 @@ export function ungroupLayer(layerId: string) { return; } - (layer as LayerGroup).getChildren().forEach((childLayer) => { + layer.getChildren().forEach((childLayer) => { dispatch(setLayerParent(childLayer.getId(), layer.getParent())); }); }; @@ -950,7 +951,7 @@ export function moveLayerToLeftOfTarget(moveLayerId: string, targetLayerId: stri dispatch(updateLayerOrder(newOrder)); if (isLayerGroup(moveLayer)) { - (moveLayer as LayerGroup).getChildren().forEach((childLayer) => { + moveLayer.getChildren().forEach((childLayer) => { dispatch(moveLayerToLeftOfTarget(childLayer.getId(), targetLayerId)); }); } diff --git a/x-pack/plugins/maps/public/actions/map_actions.ts b/x-pack/plugins/maps/public/actions/map_actions.ts index 7ae6a56900400..65276021d2781 100644 --- a/x-pack/plugins/maps/public/actions/map_actions.ts +++ b/x-pack/plugins/maps/public/actions/map_actions.ts @@ -73,7 +73,7 @@ import { Timeslice, } from '../../common/descriptor_types'; import { INITIAL_LOCATION } from '../../common/constants'; -import { isVectorLayer, IVectorLayer } from '../classes/layers/vector_layer'; +import { hasVectorLayerMethod } from '../classes/layers/vector_layer'; import { SET_DRAW_MODE, pushDeletedFeatureId, clearDeletedFeatureIds } from './ui_actions'; import { expandToTileBoundaries, getTilesForExtent } from '../classes/util/geo_tile_utils'; import { getToasts } from '../kibana_services'; @@ -439,14 +439,14 @@ export function addNewFeatureToIndex(geometries: Array) { return; } const layer = getLayerById(layerId, getState()); - if (!layer || !isVectorLayer(layer)) { + if (!layer || !hasVectorLayerMethod(layer, 'addFeature')) { return; } try { dispatch(updateEditShape(DRAW_SHAPE.WAIT)); await asyncForEach(geometries, async (geometry) => { - await (layer as IVectorLayer).addFeature(geometry); + await layer.addFeature(geometry); }); await dispatch(syncDataForLayerDueToDrawing(layer)); } catch (e) { @@ -477,13 +477,13 @@ export function deleteFeatureFromIndex(featureId: string) { return; } const layer = getLayerById(layerId, getState()); - if (!layer || !isVectorLayer(layer)) { + if (!layer || !hasVectorLayerMethod(layer, 'deleteFeature')) { return; } try { dispatch(updateEditShape(DRAW_SHAPE.WAIT)); - await (layer as IVectorLayer).deleteFeature(featureId); + await layer.deleteFeature(featureId); dispatch(pushDeletedFeatureId(featureId)); await dispatch(syncDataForLayerDueToDrawing(layer)); } catch (e) { diff --git a/x-pack/plugins/maps/public/classes/layers/__fixtures__/mock_vector_layer.ts b/x-pack/plugins/maps/public/classes/layers/__fixtures__/mock_vector_layer.ts new file mode 100644 index 0000000000000..e6dfd687a424b --- /dev/null +++ b/x-pack/plugins/maps/public/classes/layers/__fixtures__/mock_vector_layer.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 type { IVectorLayer } from '../vector_layer'; + +// mock IVectorLayer that passes isVectorLayer type guard +export const mockVectorLayer = { + addFeature: () => {}, + canShowTooltip: () => {}, + deleteFeature: () => {}, + getFields: () => {}, + getJoins: () => {}, + getLeftJoinFields: () => {}, + getMbTooltipLayerIds: () => {}, + getValidJoins: () => {}, + hasJoins: () => {}, + supportsFeatureEditing: () => {}, +} as unknown as IVectorLayer; diff --git a/x-pack/plugins/maps/public/classes/layers/layer_group/layer_group.tsx b/x-pack/plugins/maps/public/classes/layers/layer_group/layer_group.tsx index 7bdab791f59f9..1d8d61f414784 100644 --- a/x-pack/plugins/maps/public/classes/layers/layer_group/layer_group.tsx +++ b/x-pack/plugins/maps/public/classes/layers/layer_group/layer_group.tsx @@ -32,7 +32,7 @@ import { ILayer, LayerIcon, LayerMessage } from '../layer'; import { IStyle } from '../../styles/style'; import { LICENSED_FEATURES } from '../../../licensed_features'; -export function isLayerGroup(layer: ILayer) { +export function isLayerGroup(layer: ILayer): layer is LayerGroup { return layer instanceof LayerGroup; } diff --git a/x-pack/plugins/maps/public/classes/layers/vector_layer/index.ts b/x-pack/plugins/maps/public/classes/layers/vector_layer/index.ts index 5780c2c723dd6..a2eb2f29871d7 100644 --- a/x-pack/plugins/maps/public/classes/layers/vector_layer/index.ts +++ b/x-pack/plugins/maps/public/classes/layers/vector_layer/index.ts @@ -7,7 +7,11 @@ export { syncBoundsData } from './bounds_data'; export type { IVectorLayer, VectorLayerArguments } from './vector_layer'; -export { isVectorLayer, NO_RESULTS_ICON_AND_TOOLTIPCONTENT } from './vector_layer'; +export { + isVectorLayer, + hasVectorLayerMethod, + NO_RESULTS_ICON_AND_TOOLTIPCONTENT, +} from './vector_layer'; export { BlendedVectorLayer } from './blended_vector_layer'; export { GeoJsonVectorLayer } from './geojson_vector_layer'; diff --git a/x-pack/plugins/maps/public/classes/layers/vector_layer/vector_layer.test.tsx b/x-pack/plugins/maps/public/classes/layers/vector_layer/vector_layer.test.tsx index 640742b57aa93..fa446d96ca376 100644 --- a/x-pack/plugins/maps/public/classes/layers/vector_layer/vector_layer.test.tsx +++ b/x-pack/plugins/maps/public/classes/layers/vector_layer/vector_layer.test.tsx @@ -25,7 +25,9 @@ import { import { ESTermSourceDescriptor, VectorStyleDescriptor } from '../../../../common/descriptor_types'; import { getDefaultDynamicProperties } from '../../styles/vector/vector_style_defaults'; import { IVectorSource } from '../../sources/vector_source'; -import { AbstractVectorLayer } from './vector_layer'; +import { mockVectorLayer } from '../__fixtures__/mock_vector_layer'; +import { AbstractVectorLayer, isVectorLayer, hasVectorLayerMethod } from './vector_layer'; +import type { ILayer } from '../layer'; class MockSource { cloneDescriptor() { @@ -37,6 +39,30 @@ class MockSource { } } +describe('isVectorLayer', () => { + test('Should return true when Layer instance implements IVectorLayer interface', async () => { + expect(isVectorLayer(mockVectorLayer)).toBe(true); + }); + + test('Should return false when Layer instance does not implement IVectorLayer interface', async () => { + expect(isVectorLayer({} as unknown as ILayer)).toBe(false); + }); +}); + +describe('hasVectorLayerMethod', () => { + test('Should return true when Layer instance implements specific method', async () => { + const mockLayer = { + getJoins: () => {}, + } as unknown as ILayer; + expect(hasVectorLayerMethod(mockLayer, 'getJoins')).toBe(true); + }); + + test('Should return false when Layer instance does not implement specific method', async () => { + const mockLayer = {} as unknown as ILayer; + expect(hasVectorLayerMethod(mockLayer, 'getJoins')).toBe(false); + }); +}); + describe('cloneDescriptor', () => { describe('with joins', () => { const styleDescriptor = { diff --git a/x-pack/plugins/maps/public/classes/layers/vector_layer/vector_layer.tsx b/x-pack/plugins/maps/public/classes/layers/vector_layer/vector_layer.tsx index fa246f899639c..4cd0eb7398989 100644 --- a/x-pack/plugins/maps/public/classes/layers/vector_layer/vector_layer.tsx +++ b/x-pack/plugins/maps/public/classes/layers/vector_layer/vector_layer.tsx @@ -72,8 +72,26 @@ import { Mask } from './mask'; const SUPPORTS_FEATURE_EDITING_REQUEST_ID = 'SUPPORTS_FEATURE_EDITING_REQUEST_ID'; -export function isVectorLayer(layer: ILayer) { - return (layer as IVectorLayer).canShowTooltip !== undefined; +export function isVectorLayer(layer: ILayer): layer is IVectorLayer { + return ( + typeof (layer as IVectorLayer).addFeature === 'function' && + typeof (layer as IVectorLayer).canShowTooltip === 'function' && + typeof (layer as IVectorLayer).deleteFeature === 'function' && + typeof (layer as IVectorLayer).getFields === 'function' && + typeof (layer as IVectorLayer).getJoins === 'function' && + typeof (layer as IVectorLayer).getLeftJoinFields === 'function' && + typeof (layer as IVectorLayer).getMbTooltipLayerIds === 'function' && + typeof (layer as IVectorLayer).getValidJoins === 'function' && + typeof (layer as IVectorLayer).hasJoins === 'function' && + typeof (layer as IVectorLayer).supportsFeatureEditing === 'function' + ); +} + +export function hasVectorLayerMethod( + layer: ILayer, + methodName: keyof IVectorLayer +): layer is Pick { + return typeof (layer as IVectorLayer)[methodName] === 'function'; } export interface VectorLayerArguments { diff --git a/x-pack/plugins/maps/public/classes/sources/vector_source/vector_source.tsx b/x-pack/plugins/maps/public/classes/sources/vector_source/vector_source.tsx index c5aac6a5a7efc..aeffc6f6c167d 100644 --- a/x-pack/plugins/maps/public/classes/sources/vector_source/vector_source.tsx +++ b/x-pack/plugins/maps/public/classes/sources/vector_source/vector_source.tsx @@ -37,6 +37,13 @@ import { import { DataRequest } from '../../util/data_request'; import { FeatureGeometryFilterForm } from '../../../connected_components/mb_map/tooltip_control/features_tooltip'; +export function hasVectorSourceMethod( + source: ISource, + methodName: keyof IVectorSource +): source is Pick { + return typeof (source as IVectorSource)[methodName] === 'function'; +} + export interface SourceStatus { tooltipContent: string | null; areResultsTrimmed: boolean; diff --git a/x-pack/plugins/maps/public/components/remove_layer_confirm_modal.tsx b/x-pack/plugins/maps/public/components/remove_layer_confirm_modal.tsx index 8c35750265cd6..f7d31c265c643 100644 --- a/x-pack/plugins/maps/public/components/remove_layer_confirm_modal.tsx +++ b/x-pack/plugins/maps/public/components/remove_layer_confirm_modal.tsx @@ -23,7 +23,7 @@ export function RemoveLayerConfirmModal(props: Props) { layerGroup.getChildren().forEach((childLayer) => { count++; if (isLayerGroup(childLayer)) { - count = count + getChildrenCount(childLayer as LayerGroup); + count = count + getChildrenCount(childLayer); } }); return count; @@ -34,7 +34,7 @@ export function RemoveLayerConfirmModal(props: Props) { return null; } - const numChildren = getChildrenCount(props.layer as LayerGroup); + const numChildren = getChildrenCount(props.layer); return numChildren > 0 ? (

{i18n.translate('xpack.maps.deleteLayerConfirmModal.multiLayerWarning', { diff --git a/x-pack/plugins/maps/public/connected_components/edit_layer_panel/__snapshots__/edit_layer_panel.test.tsx.snap b/x-pack/plugins/maps/public/connected_components/edit_layer_panel/__snapshots__/edit_layer_panel.test.tsx.snap index 40951b4f846ed..6acd12f1b45a6 100644 --- a/x-pack/plugins/maps/public/connected_components/edit_layer_panel/__snapshots__/edit_layer_panel.test.tsx.snap +++ b/x-pack/plugins/maps/public/connected_components/edit_layer_panel/__snapshots__/edit_layer_panel.test.tsx.snap @@ -66,18 +66,26 @@ exports[`EditLayerPanel is rendered 1`] = ` { return '1'; }, diff --git a/x-pack/plugins/maps/public/connected_components/edit_layer_panel/edit_layer_panel.tsx b/x-pack/plugins/maps/public/connected_components/edit_layer_panel/edit_layer_panel.tsx index df31733ad3e16..650e2df8dc114 100644 --- a/x-pack/plugins/maps/public/connected_components/edit_layer_panel/edit_layer_panel.tsx +++ b/x-pack/plugins/maps/public/connected_components/edit_layer_panel/edit_layer_panel.tsx @@ -27,7 +27,7 @@ import { StyleSettings } from './style_settings'; import { StyleDescriptor, VectorLayerDescriptor } from '../../../common/descriptor_types'; import { getData, getCore } from '../../kibana_services'; import { ILayer } from '../../classes/layers/layer'; -import { isVectorLayer, IVectorLayer } from '../../classes/layers/vector_layer'; +import { isVectorLayer } from '../../classes/layers/vector_layer'; import { OnSourceChangeArgs } from '../../classes/sources/source'; import { IField } from '../../classes/fields/field'; import { isLayerGroup } from '../../classes/layers/layer_group'; @@ -94,16 +94,16 @@ export class EditLayerPanel extends Component { return; } - const vectorLayer = this.props.selectedLayer as IVectorLayer; - if (!vectorLayer.getSource().supportsJoins() || vectorLayer.getLeftJoinFields === undefined) { + if ( + !this.props.selectedLayer.getSource().supportsJoins() || + this.props.selectedLayer.getLeftJoinFields === undefined + ) { return; } let leftJoinFields: JoinField[] = []; try { - const leftFieldsInstances = await ( - this.props.selectedLayer as IVectorLayer - ).getLeftJoinFields(); + const leftFieldsInstances = await this.props.selectedLayer.getLeftJoinFields(); const leftFieldPromises = leftFieldsInstances.map(async (field: IField) => { return { name: field.getName(), @@ -146,8 +146,7 @@ export class EditLayerPanel extends Component { if (!this.props.selectedLayer || !isVectorLayer(this.props.selectedLayer)) { return; } - const vectorLayer = this.props.selectedLayer as IVectorLayer; - if (!vectorLayer.getSource().supportsJoins()) { + if (!this.props.selectedLayer.getSource().supportsJoins()) { return null; } @@ -155,7 +154,7 @@ export class EditLayerPanel extends Component { diff --git a/x-pack/plugins/maps/public/connected_components/edit_layer_panel/index.ts b/x-pack/plugins/maps/public/connected_components/edit_layer_panel/index.ts index 4bff783974078..9bf6f2fcc7fe4 100644 --- a/x-pack/plugins/maps/public/connected_components/edit_layer_panel/index.ts +++ b/x-pack/plugins/maps/public/connected_components/edit_layer_panel/index.ts @@ -13,16 +13,19 @@ import { EditLayerPanel } from './edit_layer_panel'; import { getSelectedLayer } from '../../selectors/map_selectors'; import { updateLayerStyleForSelectedLayer, updateSourceProps } from '../../actions'; import { MapStoreState } from '../../reducers/store'; -import { isVectorLayer, IVectorLayer } from '../../classes/layers/vector_layer'; -import { OnSourceChangeArgs } from '../../classes/sources/source'; +import type { OnSourceChangeArgs } from '../../classes/sources/source'; +import { hasVectorSourceMethod } from '../../classes/sources/vector_source'; +import { isLayerGroup } from '../../classes/layers/layer_group'; function mapStateToProps(state: MapStoreState) { const selectedLayer = getSelectedLayer(state); let key = 'none'; if (selectedLayer) { - key = isVectorLayer(selectedLayer) - ? `${selectedLayer.getId()}${(selectedLayer as IVectorLayer).getSource().supportsJoins()}` - : selectedLayer.getId(); + const source = !isLayerGroup(selectedLayer) && selectedLayer.getSource(); + key = + source && hasVectorSourceMethod(source, 'supportsJoins') + ? `${selectedLayer.getId()}${source.supportsJoins()}` + : selectedLayer.getId(); } return { key, diff --git a/x-pack/plugins/maps/public/connected_components/edit_layer_panel/layer_settings/layer_settings.tsx b/x-pack/plugins/maps/public/connected_components/edit_layer_panel/layer_settings/layer_settings.tsx index 162f43f0911a6..3513e0939eb08 100644 --- a/x-pack/plugins/maps/public/connected_components/edit_layer_panel/layer_settings/layer_settings.tsx +++ b/x-pack/plugins/maps/public/connected_components/edit_layer_panel/layer_settings/layer_settings.tsx @@ -26,7 +26,7 @@ import { Attribution } from '../../../../common/descriptor_types'; import { AUTOSELECT_EMS_LOCALE, NO_EMS_LOCALE, MAX_ZOOM } from '../../../../common/constants'; import { AlphaSlider } from '../../../components/alpha_slider'; import { ILayer } from '../../../classes/layers/layer'; -import { isVectorLayer, IVectorLayer } from '../../../classes/layers/vector_layer'; +import { isVectorLayer } from '../../../classes/layers/vector_layer'; import { AttributionFormRow } from './attribution_form_row'; import { isLayerGroup } from '../../../classes/layers/layer_group'; @@ -172,24 +172,19 @@ export function LayerSettings(props: Props) { }; const renderDisableTooltips = () => { - if (!isVectorLayer(props.layer)) { - return null; - } else { - const layer = props.layer as unknown as IVectorLayer; - return ( - - - - ); - } + return !isVectorLayer(props.layer) ? null : ( + + + + ); }; const renderShowLocaleSelector = () => { diff --git a/x-pack/plugins/maps/public/connected_components/mb_map/tooltip_control/tooltip_control.test.tsx b/x-pack/plugins/maps/public/connected_components/mb_map/tooltip_control/tooltip_control.test.tsx index 9074fbd8fbeaf..310369977f939 100644 --- a/x-pack/plugins/maps/public/connected_components/mb_map/tooltip_control/tooltip_control.test.tsx +++ b/x-pack/plugins/maps/public/connected_components/mb_map/tooltip_control/tooltip_control.test.tsx @@ -18,6 +18,7 @@ import { Feature } from 'geojson'; import type { Map as MbMap, MapMouseEvent, MapGeoJSONFeature } from '@kbn/mapbox-gl'; import { TooltipControl } from './tooltip_control'; import { IVectorLayer } from '../../../classes/layers/vector_layer'; +import { mockVectorLayer } from '../../../classes/layers/__fixtures__/mock_vector_layer'; import { IVectorSource } from '../../../classes/sources/vector_source'; // mutable map state @@ -26,6 +27,7 @@ let featuresAtLocation: MapGeoJSONFeature[] = []; const layerId = 'tfi3f'; const mbLayerId = 'tfi3f_circle'; const mockLayer = { + ...mockVectorLayer, getMbLayerIds: () => { return [mbLayerId]; }, diff --git a/x-pack/plugins/maps/public/connected_components/mb_map/tooltip_control/tooltip_control.tsx b/x-pack/plugins/maps/public/connected_components/mb_map/tooltip_control/tooltip_control.tsx index 75e41464fd0f8..cc5d623904df3 100644 --- a/x-pack/plugins/maps/public/connected_components/mb_map/tooltip_control/tooltip_control.tsx +++ b/x-pack/plugins/maps/public/connected_components/mb_map/tooltip_control/tooltip_control.tsx @@ -322,7 +322,7 @@ export class TooltipControl extends Component { (accumulator: string[], layer: ILayer) => { // tooltips are only supported for vector layers, filter out all other layer types return layer.isVisible() && isVectorLayer(layer) - ? accumulator.concat((layer as IVectorLayer).getMbTooltipLayerIds()) + ? accumulator.concat(layer.getMbTooltipLayerIds()) : accumulator; }, [] diff --git a/x-pack/plugins/maps/public/connected_components/right_side_controls/layer_control/layer_toc/toc_entry/toc_entry_actions_popover/toc_entry_actions_popover.tsx b/x-pack/plugins/maps/public/connected_components/right_side_controls/layer_control/layer_toc/toc_entry/toc_entry_actions_popover/toc_entry_actions_popover.tsx index 18d8023f5cff3..a6d83f809653d 100644 --- a/x-pack/plugins/maps/public/connected_components/right_side_controls/layer_control/layer_toc/toc_entry/toc_entry_actions_popover/toc_entry_actions_popover.tsx +++ b/x-pack/plugins/maps/public/connected_components/right_side_controls/layer_control/layer_toc/toc_entry/toc_entry_actions_popover/toc_entry_actions_popover.tsx @@ -18,10 +18,10 @@ import { getVisibilityToggleLabel, } from '../action_labels'; import { ESSearchSource } from '../../../../../../classes/sources/es_search_source'; -import { isVectorLayer, IVectorLayer } from '../../../../../../classes/layers/vector_layer'; +import { hasVectorLayerMethod } from '../../../../../../classes/layers/vector_layer'; import { SCALING_TYPES, VECTOR_SHAPE_TYPE } from '../../../../../../../common/constants'; import { RemoveLayerConfirmModal } from '../../../../../../components/remove_layer_confirm_modal'; -import { isLayerGroup, LayerGroup } from '../../../../../../classes/layers/layer_group'; +import { isLayerGroup } from '../../../../../../classes/layers/layer_group'; export interface Props { cloneLayer: (layerId: string) => void; @@ -71,10 +71,10 @@ export class TOCEntryActionsPopover extends Component { } async _loadFeatureEditing() { - if (!isVectorLayer(this.props.layer)) { + if (!hasVectorLayerMethod(this.props.layer, 'supportsFeatureEditing')) { return; } - const supportsFeatureEditing = (this.props.layer as IVectorLayer).supportsFeatureEditing(); + const supportsFeatureEditing = this.props.layer.supportsFeatureEditing(); const isFeatureEditingEnabled = await this._getIsFeatureEditingEnabled(); if ( !this._isMounted || @@ -87,7 +87,10 @@ export class TOCEntryActionsPopover extends Component { } async _getIsFeatureEditingEnabled(): Promise { - const vectorLayer = this.props.layer as IVectorLayer; + if (!hasVectorLayerMethod(this.props.layer, 'hasJoins')) { + return false; + } + const source = this.props.layer.getSource(); if (!(source instanceof ESSearchSource)) { return false; @@ -95,9 +98,9 @@ export class TOCEntryActionsPopover extends Component { if ( (source as ESSearchSource).getSyncMeta().scalingType === SCALING_TYPES.CLUSTERS || - vectorLayer.isPreviewLayer() || - !vectorLayer.isVisible() || - vectorLayer.hasJoins() + this.props.layer.isPreviewLayer() || + !this.props.layer.isVisible() || + this.props.layer.hasJoins() ) { return false; } @@ -211,10 +214,7 @@ export class TOCEntryActionsPopover extends Component { this.props.cloneLayer(this.props.layer.getId()); }, }); - if ( - isLayerGroup(this.props.layer) && - (this.props.layer as LayerGroup).getChildren().length > 0 - ) { + if (isLayerGroup(this.props.layer) && this.props.layer.getChildren().length > 0) { actionItems.push({ name: i18n.translate('xpack.maps.layerTocActions.ungroupLayerTitle', { defaultMessage: 'Ungroup layers', diff --git a/x-pack/plugins/maps/public/selectors/map_selectors.ts b/x-pack/plugins/maps/public/selectors/map_selectors.ts index 7b0394b275043..ec035ac1c5623 100644 --- a/x-pack/plugins/maps/public/selectors/map_selectors.ts +++ b/x-pack/plugins/maps/public/selectors/map_selectors.ts @@ -15,8 +15,8 @@ import type { TimeRange } from '@kbn/es-query'; import { RasterTileLayer } from '../classes/layers/raster_tile_layer/raster_tile_layer'; import { EmsVectorTileLayer } from '../classes/layers/ems_vector_tile_layer/ems_vector_tile_layer'; import { + hasVectorLayerMethod, BlendedVectorLayer, - IVectorLayer, MvtVectorLayer, GeoJsonVectorLayer, } from '../classes/layers/vector_layer'; @@ -351,7 +351,7 @@ export const getLayerList = createSelector( if (!parentLayer || !isLayerGroup(parentLayer)) { return; } - (parentLayer as LayerGroup).setChildren(children); + parentLayer.setChildren(children); }); return layers; @@ -402,11 +402,11 @@ export const getMapColors = createSelector(getLayerListRaw, (layerList) => ); export const getSelectedLayerJoinDescriptors = createSelector(getSelectedLayer, (selectedLayer) => { - if (!selectedLayer || !('getJoins' in selectedLayer)) { + if (!selectedLayer || !hasVectorLayerMethod(selectedLayer, 'getJoins')) { return []; } - return (selectedLayer as IVectorLayer).getJoins().map((join: InnerJoin) => { + return selectedLayer.getJoins().map((join: InnerJoin) => { return join.toDescriptor(); }); }); From 2e1a6117981f40279075094e62b2ff5d4c778b8e Mon Sep 17 00:00:00 2001 From: Ying Mao Date: Tue, 9 Jan 2024 11:23:49 -0500 Subject: [PATCH 04/20] [Response Ops][Alerting] AAD for alerting example rules (#174032) Towards https://github.com/elastic/response-ops-team/issues/164 ## Summary Registering alerting example rules with framework AAD. This creates a new alerts index `.alerts-default.alerts-default` that will eventually hold alerts for all rules that have not customized their registration. This index contains only the mappings for the basic alerts as data documents, no custom context or payload fields. ## To Verify Run kibana using `--run-examples` flag. Create one of the example rule types and let it alert and then resolve and see an alert document get created in the `.alerts-default.alerts-default` index. --------- Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../schemas/create_schema_from_field_map.ts | 1 + .../src/schemas/generated/alert_schema.ts | 1 + .../src/schemas/generated/default_schema.ts | 78 +++++++++++++++++++ .../src/schemas/generated/ecs_schema.ts | 1 + .../schemas/generated/legacy_alert_schema.ts | 1 + .../generated/ml_anomaly_detection_schema.ts | 1 + .../generated/observability_apm_schema.ts | 1 + .../generated/observability_logs_schema.ts | 1 + .../generated/observability_metrics_schema.ts | 1 + .../generated/observability_slo_schema.ts | 1 + .../generated/observability_uptime_schema.ts | 1 + .../src/schemas/generated/security_schema.ts | 1 + .../src/schemas/generated/stack_schema.ts | 1 + .../src/schemas/index.ts | 5 +- .../src/alerts_as_data_rbac.ts | 1 + .../alerting_example/server/plugin.ts | 22 +++--- .../always_firing.ts | 38 ++++++--- .../{alert_types => rule_types}/astros.ts | 39 ++++++++-- .../{alert_types => rule_types}/pattern.md | 0 .../pattern.test.ts | 18 ++--- .../{alert_types => rule_types}/pattern.ts | 26 ++++++- .../examples/alerting_example/tsconfig.json | 1 + x-pack/plugins/alerting/server/index.ts | 1 + ...type_registry_deprecated_consumers.test.ts | 1 + ...rule_type_registry_deprecated_consumers.ts | 1 + x-pack/plugins/alerting/server/types.ts | 8 +- 26 files changed, 207 insertions(+), 44 deletions(-) create mode 100644 packages/kbn-alerts-as-data-utils/src/schemas/generated/default_schema.ts rename x-pack/examples/alerting_example/server/{alert_types => rule_types}/always_firing.ts (75%) rename x-pack/examples/alerting_example/server/{alert_types => rule_types}/astros.ts (76%) rename x-pack/examples/alerting_example/server/{alert_types => rule_types}/pattern.md (100%) rename x-pack/examples/alerting_example/server/{alert_types => rule_types}/pattern.test.ts (90%) rename x-pack/examples/alerting_example/server/{alert_types => rule_types}/pattern.ts (85%) diff --git a/packages/kbn-alerts-as-data-utils/src/schemas/create_schema_from_field_map.ts b/packages/kbn-alerts-as-data-utils/src/schemas/create_schema_from_field_map.ts index e2d45b876fb57..1ae0979f03f3f 100644 --- a/packages/kbn-alerts-as-data-utils/src/schemas/create_schema_from_field_map.ts +++ b/packages/kbn-alerts-as-data-utils/src/schemas/create_schema_from_field_map.ts @@ -322,6 +322,7 @@ export const schemaGeoPoint = rt.union([ export const schemaGeoPointArray = rt.array(schemaGeoPoint); // prettier-ignore const %%schemaPrefix%%Required = %%REQUIRED_FIELDS%%; +// prettier-ignore const %%schemaPrefix%%Optional = %%OPTIONAL_FIELDS%%; // prettier-ignore diff --git a/packages/kbn-alerts-as-data-utils/src/schemas/generated/alert_schema.ts b/packages/kbn-alerts-as-data-utils/src/schemas/generated/alert_schema.ts index 5625460f269b4..b183ca5c792f8 100644 --- a/packages/kbn-alerts-as-data-utils/src/schemas/generated/alert_schema.ts +++ b/packages/kbn-alerts-as-data-utils/src/schemas/generated/alert_schema.ts @@ -80,6 +80,7 @@ const AlertRequired = rt.type({ 'kibana.alert.uuid': schemaString, 'kibana.space_ids': schemaStringArray, }); +// prettier-ignore const AlertOptional = rt.partial({ 'event.action': schemaString, 'event.kind': schemaString, diff --git a/packages/kbn-alerts-as-data-utils/src/schemas/generated/default_schema.ts b/packages/kbn-alerts-as-data-utils/src/schemas/generated/default_schema.ts new file mode 100644 index 0000000000000..919483f6c79f0 --- /dev/null +++ b/packages/kbn-alerts-as-data-utils/src/schemas/generated/default_schema.ts @@ -0,0 +1,78 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ +// ---------------------------------- WARNING ---------------------------------- +// this file was generated, and should not be edited by hand +// ---------------------------------- WARNING ---------------------------------- +import * as rt from 'io-ts'; +import { Either } from 'fp-ts/lib/Either'; +import { AlertSchema } from './alert_schema'; +const ISO_DATE_PATTERN = /^d{4}-d{2}-d{2}Td{2}:d{2}:d{2}.d{3}Z$/; +export const IsoDateString = new rt.Type( + 'IsoDateString', + rt.string.is, + (input, context): Either => { + if (typeof input === 'string' && ISO_DATE_PATTERN.test(input)) { + return rt.success(input); + } else { + return rt.failure(input, context); + } + }, + rt.identity +); +export type IsoDateStringC = typeof IsoDateString; +export const schemaUnknown = rt.unknown; +export const schemaUnknownArray = rt.array(rt.unknown); +export const schemaString = rt.string; +export const schemaStringArray = rt.array(schemaString); +export const schemaNumber = rt.number; +export const schemaNumberArray = rt.array(schemaNumber); +export const schemaDate = rt.union([IsoDateString, schemaNumber]); +export const schemaDateArray = rt.array(schemaDate); +export const schemaDateRange = rt.partial({ + gte: schemaDate, + lte: schemaDate, +}); +export const schemaDateRangeArray = rt.array(schemaDateRange); +export const schemaStringOrNumber = rt.union([schemaString, schemaNumber]); +export const schemaStringOrNumberArray = rt.array(schemaStringOrNumber); +export const schemaBoolean = rt.boolean; +export const schemaBooleanArray = rt.array(schemaBoolean); +const schemaGeoPointCoords = rt.type({ + type: schemaString, + coordinates: schemaNumberArray, +}); +const schemaGeoPointString = schemaString; +const schemaGeoPointLatLon = rt.type({ + lat: schemaNumber, + lon: schemaNumber, +}); +const schemaGeoPointLocation = rt.type({ + location: schemaNumberArray, +}); +const schemaGeoPointLocationString = rt.type({ + location: schemaString, +}); +export const schemaGeoPoint = rt.union([ + schemaGeoPointCoords, + schemaGeoPointString, + schemaGeoPointLatLon, + schemaGeoPointLocation, + schemaGeoPointLocationString, +]); +export const schemaGeoPointArray = rt.array(schemaGeoPoint); +// prettier-ignore +const DefaultAlertRequired = rt.type({ +}); +// prettier-ignore +const DefaultAlertOptional = rt.partial({ +}); + +// prettier-ignore +export const DefaultAlertSchema = rt.intersection([DefaultAlertRequired, DefaultAlertOptional, AlertSchema]); +// prettier-ignore +export type DefaultAlert = rt.TypeOf; diff --git a/packages/kbn-alerts-as-data-utils/src/schemas/generated/ecs_schema.ts b/packages/kbn-alerts-as-data-utils/src/schemas/generated/ecs_schema.ts index b3bc0eb161720..2852039b1a9dd 100644 --- a/packages/kbn-alerts-as-data-utils/src/schemas/generated/ecs_schema.ts +++ b/packages/kbn-alerts-as-data-utils/src/schemas/generated/ecs_schema.ts @@ -70,6 +70,7 @@ const EcsRequired = rt.type({ '@timestamp': schemaDate, 'ecs.version': schemaString, }); +// prettier-ignore const EcsOptional = rt.partial({ 'agent.build.original': schemaString, 'agent.ephemeral_id': schemaString, diff --git a/packages/kbn-alerts-as-data-utils/src/schemas/generated/legacy_alert_schema.ts b/packages/kbn-alerts-as-data-utils/src/schemas/generated/legacy_alert_schema.ts index faecf4c0252ca..a2031b0468cf5 100644 --- a/packages/kbn-alerts-as-data-utils/src/schemas/generated/legacy_alert_schema.ts +++ b/packages/kbn-alerts-as-data-utils/src/schemas/generated/legacy_alert_schema.ts @@ -68,6 +68,7 @@ export const schemaGeoPointArray = rt.array(schemaGeoPoint); // prettier-ignore const LegacyAlertRequired = rt.type({ }); +// prettier-ignore const LegacyAlertOptional = rt.partial({ 'ecs.version': schemaString, 'kibana.alert.risk_score': schemaNumber, diff --git a/packages/kbn-alerts-as-data-utils/src/schemas/generated/ml_anomaly_detection_schema.ts b/packages/kbn-alerts-as-data-utils/src/schemas/generated/ml_anomaly_detection_schema.ts index 591a51b2fec57..e5dd543f17f23 100644 --- a/packages/kbn-alerts-as-data-utils/src/schemas/generated/ml_anomaly_detection_schema.ts +++ b/packages/kbn-alerts-as-data-utils/src/schemas/generated/ml_anomaly_detection_schema.ts @@ -69,6 +69,7 @@ export const schemaGeoPointArray = rt.array(schemaGeoPoint); const MlAnomalyDetectionAlertRequired = rt.type({ 'kibana.alert.job_id': schemaString, }); +// prettier-ignore const MlAnomalyDetectionAlertOptional = rt.partial({ 'kibana.alert.anomaly_score': schemaNumber, 'kibana.alert.anomaly_timestamp': schemaDate, diff --git a/packages/kbn-alerts-as-data-utils/src/schemas/generated/observability_apm_schema.ts b/packages/kbn-alerts-as-data-utils/src/schemas/generated/observability_apm_schema.ts index 41431d4581aa9..eb69b9a5e3250 100644 --- a/packages/kbn-alerts-as-data-utils/src/schemas/generated/observability_apm_schema.ts +++ b/packages/kbn-alerts-as-data-utils/src/schemas/generated/observability_apm_schema.ts @@ -69,6 +69,7 @@ export const schemaGeoPointArray = rt.array(schemaGeoPoint); // prettier-ignore const ObservabilityApmAlertRequired = rt.type({ }); +// prettier-ignore const ObservabilityApmAlertOptional = rt.partial({ 'agent.name': schemaString, 'error.grouping_key': schemaString, diff --git a/packages/kbn-alerts-as-data-utils/src/schemas/generated/observability_logs_schema.ts b/packages/kbn-alerts-as-data-utils/src/schemas/generated/observability_logs_schema.ts index dd87a5b0e6c9d..373b0af5b32a2 100644 --- a/packages/kbn-alerts-as-data-utils/src/schemas/generated/observability_logs_schema.ts +++ b/packages/kbn-alerts-as-data-utils/src/schemas/generated/observability_logs_schema.ts @@ -70,6 +70,7 @@ export const schemaGeoPointArray = rt.array(schemaGeoPoint); // prettier-ignore const ObservabilityLogsAlertRequired = rt.type({ }); +// prettier-ignore const ObservabilityLogsAlertOptional = rt.partial({ 'kibana.alert.context': schemaUnknown, 'kibana.alert.evaluation.threshold': schemaStringOrNumber, diff --git a/packages/kbn-alerts-as-data-utils/src/schemas/generated/observability_metrics_schema.ts b/packages/kbn-alerts-as-data-utils/src/schemas/generated/observability_metrics_schema.ts index 2e34e72f88257..7b26dc924e2fb 100644 --- a/packages/kbn-alerts-as-data-utils/src/schemas/generated/observability_metrics_schema.ts +++ b/packages/kbn-alerts-as-data-utils/src/schemas/generated/observability_metrics_schema.ts @@ -70,6 +70,7 @@ export const schemaGeoPointArray = rt.array(schemaGeoPoint); // prettier-ignore const ObservabilityMetricsAlertRequired = rt.type({ }); +// prettier-ignore const ObservabilityMetricsAlertOptional = rt.partial({ 'kibana.alert.context': schemaUnknown, 'kibana.alert.evaluation.threshold': schemaStringOrNumber, diff --git a/packages/kbn-alerts-as-data-utils/src/schemas/generated/observability_slo_schema.ts b/packages/kbn-alerts-as-data-utils/src/schemas/generated/observability_slo_schema.ts index 523e79ecf07a9..0485ccaa93318 100644 --- a/packages/kbn-alerts-as-data-utils/src/schemas/generated/observability_slo_schema.ts +++ b/packages/kbn-alerts-as-data-utils/src/schemas/generated/observability_slo_schema.ts @@ -69,6 +69,7 @@ export const schemaGeoPointArray = rt.array(schemaGeoPoint); // prettier-ignore const ObservabilitySloAlertRequired = rt.type({ }); +// prettier-ignore const ObservabilitySloAlertOptional = rt.partial({ 'kibana.alert.context': schemaUnknown, 'kibana.alert.evaluation.threshold': schemaStringOrNumber, diff --git a/packages/kbn-alerts-as-data-utils/src/schemas/generated/observability_uptime_schema.ts b/packages/kbn-alerts-as-data-utils/src/schemas/generated/observability_uptime_schema.ts index d8693417f77dc..1401cdda70f1c 100644 --- a/packages/kbn-alerts-as-data-utils/src/schemas/generated/observability_uptime_schema.ts +++ b/packages/kbn-alerts-as-data-utils/src/schemas/generated/observability_uptime_schema.ts @@ -69,6 +69,7 @@ export const schemaGeoPointArray = rt.array(schemaGeoPoint); // prettier-ignore const ObservabilityUptimeAlertRequired = rt.type({ }); +// prettier-ignore const ObservabilityUptimeAlertOptional = rt.partial({ 'agent.name': schemaString, 'anomaly.bucket_span.minutes': schemaString, diff --git a/packages/kbn-alerts-as-data-utils/src/schemas/generated/security_schema.ts b/packages/kbn-alerts-as-data-utils/src/schemas/generated/security_schema.ts index 1d141def7f511..fb9277abb884d 100644 --- a/packages/kbn-alerts-as-data-utils/src/schemas/generated/security_schema.ts +++ b/packages/kbn-alerts-as-data-utils/src/schemas/generated/security_schema.ts @@ -117,6 +117,7 @@ const SecurityAlertRequired = rt.type({ 'kibana.alert.uuid': schemaString, 'kibana.space_ids': schemaStringArray, }); +// prettier-ignore const SecurityAlertOptional = rt.partial({ 'ecs.version': schemaString, 'event.action': schemaString, diff --git a/packages/kbn-alerts-as-data-utils/src/schemas/generated/stack_schema.ts b/packages/kbn-alerts-as-data-utils/src/schemas/generated/stack_schema.ts index 1588963385834..94ba544e4c96f 100644 --- a/packages/kbn-alerts-as-data-utils/src/schemas/generated/stack_schema.ts +++ b/packages/kbn-alerts-as-data-utils/src/schemas/generated/stack_schema.ts @@ -68,6 +68,7 @@ export const schemaGeoPointArray = rt.array(schemaGeoPoint); // prettier-ignore const StackAlertRequired = rt.type({ }); +// prettier-ignore const StackAlertOptional = rt.partial({ 'kibana.alert.evaluation.conditions': schemaString, 'kibana.alert.evaluation.threshold': schemaStringOrNumber, diff --git a/packages/kbn-alerts-as-data-utils/src/schemas/index.ts b/packages/kbn-alerts-as-data-utils/src/schemas/index.ts index 28da937087cf1..9a56c90682016 100644 --- a/packages/kbn-alerts-as-data-utils/src/schemas/index.ts +++ b/packages/kbn-alerts-as-data-utils/src/schemas/index.ts @@ -14,6 +14,7 @@ import type { ObservabilitySloAlert } from './generated/observability_slo_schema import type { ObservabilityUptimeAlert } from './generated/observability_uptime_schema'; import type { SecurityAlert } from './generated/security_schema'; import type { MlAnomalyDetectionAlert } from './generated/ml_anomaly_detection_schema'; +import type { DefaultAlert } from './generated/default_schema'; export * from './create_schema_from_field_map'; @@ -26,6 +27,7 @@ export type { ObservabilityUptimeAlert } from './generated/observability_uptime_ export type { SecurityAlert } from './generated/security_schema'; export type { StackAlert } from './generated/stack_schema'; export type { MlAnomalyDetectionAlert } from './generated/ml_anomaly_detection_schema'; +export type { DefaultAlert } from './generated/default_schema'; export type AADAlert = | Alert @@ -35,4 +37,5 @@ export type AADAlert = | ObservabilitySloAlert | ObservabilityUptimeAlert | SecurityAlert - | MlAnomalyDetectionAlert; + | MlAnomalyDetectionAlert + | DefaultAlert; diff --git a/packages/kbn-rule-data-utils/src/alerts_as_data_rbac.ts b/packages/kbn-rule-data-utils/src/alerts_as_data_rbac.ts index 2b46eeab849f3..e231a360ba36e 100644 --- a/packages/kbn-rule-data-utils/src/alerts_as_data_rbac.ts +++ b/packages/kbn-rule-data-utils/src/alerts_as_data_rbac.ts @@ -25,6 +25,7 @@ export const AlertConsumers = { UPTIME: 'uptime', ML: 'ml', STACK_ALERTS: 'stackAlerts', + EXAMPLE: 'AlertingExample', } as const; export type AlertConsumers = typeof AlertConsumers[keyof typeof AlertConsumers]; export type STATUS_VALUES = 'open' | 'acknowledged' | 'closed' | 'in-progress'; // TODO: remove 'in-progress' after migration to 'acknowledged' diff --git a/x-pack/examples/alerting_example/server/plugin.ts b/x-pack/examples/alerting_example/server/plugin.ts index 32a55020ed524..8aee6fb49dbe5 100644 --- a/x-pack/examples/alerting_example/server/plugin.ts +++ b/x-pack/examples/alerting_example/server/plugin.ts @@ -12,9 +12,9 @@ import { DEFAULT_APP_CATEGORIES } from '@kbn/core-application-common'; import { PluginSetupContract as AlertingSetup } from '@kbn/alerting-plugin/server'; import { PluginSetupContract as FeaturesPluginSetup } from '@kbn/features-plugin/server'; -import { alertType as alwaysFiringAlert } from './alert_types/always_firing'; -import { alertType as peopleInSpaceAlert } from './alert_types/astros'; -import { alertType as patternAlert } from './alert_types/pattern'; +import { ruleType as alwaysFiringRule } from './rule_types/always_firing'; +import { ruleType as peopleInSpaceRule } from './rule_types/astros'; +import { ruleType as patternRule } from './rule_types/pattern'; // can't import static code from another plugin to support examples functional test const INDEX_THRESHOLD_ID = '.index-threshold'; import { ALERTING_EXAMPLE_APP_ID } from '../common/constants'; @@ -27,9 +27,9 @@ export interface AlertingExampleDeps { export class AlertingExamplePlugin implements Plugin { public setup(core: CoreSetup, { alerting, features }: AlertingExampleDeps) { - alerting.registerType(alwaysFiringAlert); - alerting.registerType(peopleInSpaceAlert); - alerting.registerType(patternAlert); + alerting.registerType(alwaysFiringRule); + alerting.registerType(peopleInSpaceRule); + alerting.registerType(patternRule); features.registerKibanaFeature({ id: ALERTING_EXAMPLE_APP_ID, @@ -41,15 +41,15 @@ export class AlertingExamplePlugin implements Plugin = { id: 'example.always-firing', name: 'Always firing', @@ -61,15 +75,20 @@ export const alertType: RuleType< params: { instances = DEFAULT_INSTANCES_TO_GENERATE, thresholds }, state, }) { + const { alertsClient } = services; + if (!alertsClient) { + throw new AlertsClientError(); + } const count = (state.count ?? 0) + 1; range(instances) .map(() => uuidv4()) .forEach((id: string) => { - services.alertFactory - .create(id) - .replaceState({ triggerdOnCycle: count }) - .scheduleActions(getTShirtSizeByIdAndThreshold(id, thresholds)); + alertsClient.report({ + id, + actionGroup: getTShirtSizeByIdAndThreshold(id, thresholds), + state: { triggerdOnCycle: count }, + }); }); return { @@ -92,4 +111,5 @@ export const alertType: RuleType< ), }), }, + alerts: DEFAULT_AAD_CONFIG, }; diff --git a/x-pack/examples/alerting_example/server/alert_types/astros.ts b/x-pack/examples/alerting_example/server/rule_types/astros.ts similarity index 76% rename from x-pack/examples/alerting_example/server/alert_types/astros.ts rename to x-pack/examples/alerting_example/server/rule_types/astros.ts index fda111bfcf86b..a029cea58456a 100644 --- a/x-pack/examples/alerting_example/server/alert_types/astros.ts +++ b/x-pack/examples/alerting_example/server/rule_types/astros.ts @@ -6,8 +6,15 @@ */ import axios from 'axios'; -import { RuleType } from '@kbn/alerting-plugin/server'; +import { + DEFAULT_AAD_CONFIG, + RuleType, + RuleTypeParams, + RuleTypeState, + AlertsClientError, +} from '@kbn/alerting-plugin/server'; import { schema } from '@kbn/config-schema'; +import type { DefaultAlert } from '@kbn/alerts-as-data-utils'; import { Operator, Craft, ALERTING_EXAMPLE_APP_ID } from '../../common/constants'; interface PeopleInSpace { @@ -18,6 +25,18 @@ interface PeopleInSpace { number: number; } +interface Params extends RuleTypeParams { + outerSpaceCapacity: number; + craft: string; + op: string; +} +interface State extends RuleTypeState { + peopleInSpace: number; +} +interface AlertState { + craft: string; +} + function getOperator(op: string) { switch (op) { case Operator.AreAbove: @@ -40,14 +59,15 @@ function getCraftFilter(craft: string) { craft === Craft.OuterSpace ? true : craft === person.craft; } -export const alertType: RuleType< - { outerSpaceCapacity: number; craft: string; op: string }, +export const ruleType: RuleType< + Params, never, - { peopleInSpace: number }, - { craft: string }, + State, + AlertState, never, 'default', - 'hasLandedBackOnEarth' + 'hasLandedBackOnEarth', + DefaultAlert > = { id: 'example.people-in-space', name: 'People In Space Right Now', @@ -60,6 +80,10 @@ export const alertType: RuleType< name: 'Has landed back on Earth', }, async executor({ services, params }) { + const { alertsClient } = services; + if (!alertsClient) { + throw new AlertsClientError(); + } const { outerSpaceCapacity, craft: craftToTriggerBy, op } = params; const response = await axios.get('http://api.open-notify.org/astros.json'); @@ -71,7 +95,7 @@ export const alertType: RuleType< if (getOperator(op)(peopleInCraft.length, outerSpaceCapacity)) { peopleInCraft.forEach(({ craft, name }) => { - services.alertFactory.create(name).replaceState({ craft }).scheduleActions('default'); + alertsClient.report({ id: name, actionGroup: 'default', state: { craft } }); }); } @@ -86,6 +110,7 @@ export const alertType: RuleType< getViewInAppRelativeUrl({ rule }) { return `/app/${ALERTING_EXAMPLE_APP_ID}/astros/${rule.id}`; }, + alerts: DEFAULT_AAD_CONFIG, validate: { params: schema.object({ outerSpaceCapacity: schema.number(), diff --git a/x-pack/examples/alerting_example/server/alert_types/pattern.md b/x-pack/examples/alerting_example/server/rule_types/pattern.md similarity index 100% rename from x-pack/examples/alerting_example/server/alert_types/pattern.md rename to x-pack/examples/alerting_example/server/rule_types/pattern.md diff --git a/x-pack/examples/alerting_example/server/alert_types/pattern.test.ts b/x-pack/examples/alerting_example/server/rule_types/pattern.test.ts similarity index 90% rename from x-pack/examples/alerting_example/server/alert_types/pattern.test.ts rename to x-pack/examples/alerting_example/server/rule_types/pattern.test.ts index a9e48cdc7925e..4a3254c6007a2 100644 --- a/x-pack/examples/alerting_example/server/alert_types/pattern.test.ts +++ b/x-pack/examples/alerting_example/server/rule_types/pattern.test.ts @@ -6,7 +6,7 @@ */ import { loggingSystemMock } from '@kbn/core/server/mocks'; -import { alertType } from './pattern'; +import { ruleType } from './pattern'; const logger = loggingSystemMock.create().get(); @@ -22,9 +22,10 @@ describe('pattern rule type', () => { const options = { params, state, + services: { alertsClient: {} }, }; try { - await alertType.executor(options as any); + await ruleType.executor(options as any); } catch (err) { expect(err.message).toMatchInlineSnapshot( `"errors in patterns: pattern for instA contains invalid string: \\"nope\\", pattern for instB contains invalid string: \\"hallo!\\""` @@ -50,7 +51,7 @@ describe('pattern rule type', () => { let result: any; for (let i = 0; i < 6; i++) { - result = await alertType.executor(options as any); + result = await ruleType.executor(options as any); options.state = result.state; } @@ -182,20 +183,15 @@ describe('pattern rule type', () => { }); }); -// services.alertFactory.create(instance).scheduleActions('default', context); type ScheduledAction = [string, string, any]; function getServices() { const scheduledActions: ScheduledAction[] = []; return { scheduledActions, - alertFactory: { - create(instance: string) { - return { - scheduleActions(actionGroup: string, context: any) { - scheduledActions.push([instance, actionGroup, context]); - }, - }; + alertsClient: { + report(reported: { id: string; actionGroup: string; context: any }) { + scheduledActions.push([reported.id, reported.actionGroup, reported.context]); }, }, }; diff --git a/x-pack/examples/alerting_example/server/alert_types/pattern.ts b/x-pack/examples/alerting_example/server/rule_types/pattern.ts similarity index 85% rename from x-pack/examples/alerting_example/server/alert_types/pattern.ts rename to x-pack/examples/alerting_example/server/rule_types/pattern.ts index 16177fa5de7dd..c78b0a3650f1c 100644 --- a/x-pack/examples/alerting_example/server/alert_types/pattern.ts +++ b/x-pack/examples/alerting_example/server/rule_types/pattern.ts @@ -10,7 +10,11 @@ import { RuleType as BaseRuleType, RuleTypeState, RuleExecutorOptions as BaseRuleExecutorOptions, + DEFAULT_AAD_CONFIG, + AlertsClientError, } from '@kbn/alerting-plugin/server'; +import type { DefaultAlert } from '@kbn/alerts-as-data-utils'; +import { RecoveredActionGroupId } from '@kbn/alerting-plugin/common'; type Params = TypeOf; const Params = schema.object( @@ -41,10 +45,19 @@ interface State extends RuleTypeState { runs?: number; } -type RuleExecutorOptions = BaseRuleExecutorOptions; +type RuleExecutorOptions = BaseRuleExecutorOptions; -type RuleType = BaseRuleType; -export const alertType: RuleType = getPatternRuleType(); +type RuleType = BaseRuleType< + Params, + never, + State, + {}, + {}, + 'default', + RecoveredActionGroupId, + DefaultAlert +>; +export const ruleType: RuleType = getPatternRuleType(); function getPatternRuleType(): RuleType { return { @@ -57,6 +70,7 @@ function getPatternRuleType(): RuleType { minimumLicenseRequired: 'basic', isExportable: true, executor, + alerts: DEFAULT_AAD_CONFIG, validate: { params: Params, }, @@ -65,6 +79,10 @@ function getPatternRuleType(): RuleType { async function executor(options: RuleExecutorOptions): Promise<{ state: State }> { const { services, state, params } = options; + const { alertsClient } = services; + if (!alertsClient) { + throw new AlertsClientError(); + } if (state.runs == null) { state.runs = 0; @@ -96,7 +114,7 @@ async function executor(options: RuleExecutorOptions): Promise<{ state: State }> switch (action) { case 'a': const context = { patternIndex, action, pattern, runs }; - services.alertFactory.create(instance).scheduleActions('default', context); + alertsClient.report({ id: instance, actionGroup: 'default', context }); break; case '-': break; diff --git a/x-pack/examples/alerting_example/tsconfig.json b/x-pack/examples/alerting_example/tsconfig.json index 60d23740ef343..fa7c9ae59d1ba 100644 --- a/x-pack/examples/alerting_example/tsconfig.json +++ b/x-pack/examples/alerting_example/tsconfig.json @@ -27,5 +27,6 @@ "@kbn/core-application-common", "@kbn/shared-ux-router", "@kbn/config-schema", + "@kbn/alerts-as-data-utils", ] } diff --git a/x-pack/plugins/alerting/server/index.ts b/x-pack/plugins/alerting/server/index.ts index 916d1bd11a384..d27e6976b8b7a 100644 --- a/x-pack/plugins/alerting/server/index.ts +++ b/x-pack/plugins/alerting/server/index.ts @@ -34,6 +34,7 @@ export type { GetViewInAppRelativeUrlFnOpts, DataStreamAdapter, } from './types'; +export { DEFAULT_AAD_CONFIG } from './types'; export { RULE_SAVED_OBJECT_TYPE } from './saved_objects'; export { RuleNotifyWhen } from '../common'; export { DEFAULT_MAX_EPHEMERAL_ACTIONS_PER_ALERT } from './config'; diff --git a/x-pack/plugins/alerting/server/rule_type_registry_deprecated_consumers.test.ts b/x-pack/plugins/alerting/server/rule_type_registry_deprecated_consumers.test.ts index 94d8aa923ea19..e54e2570ada09 100644 --- a/x-pack/plugins/alerting/server/rule_type_registry_deprecated_consumers.test.ts +++ b/x-pack/plugins/alerting/server/rule_type_registry_deprecated_consumers.test.ts @@ -16,6 +16,7 @@ describe('rule_type_registry_deprecated_consumers', () => { expect(Object.keys(ruleTypeIdWithValidLegacyConsumers)).toMatchInlineSnapshot(` Array [ "example.always-firing", + "example.people-in-space", "transform_health", ".index-threshold", ".geo-containment", diff --git a/x-pack/plugins/alerting/server/rule_type_registry_deprecated_consumers.ts b/x-pack/plugins/alerting/server/rule_type_registry_deprecated_consumers.ts index 7394736968609..ecb96f0248a35 100644 --- a/x-pack/plugins/alerting/server/rule_type_registry_deprecated_consumers.ts +++ b/x-pack/plugins/alerting/server/rule_type_registry_deprecated_consumers.ts @@ -9,6 +9,7 @@ import { ALERTS_FEATURE_ID } from './types'; export const ruleTypeIdWithValidLegacyConsumers: Record = { 'example.always-firing': [ALERTS_FEATURE_ID], + 'example.people-in-space': [ALERTS_FEATURE_ID], transform_health: [ALERTS_FEATURE_ID], '.index-threshold': [ALERTS_FEATURE_ID], '.geo-containment': [ALERTS_FEATURE_ID], diff --git a/x-pack/plugins/alerting/server/types.ts b/x-pack/plugins/alerting/server/types.ts index 4867adaf9b9a0..f0b254c767335 100644 --- a/x-pack/plugins/alerting/server/types.ts +++ b/x-pack/plugins/alerting/server/types.ts @@ -22,7 +22,7 @@ import { } from '@kbn/core/server'; import type { PublicMethodsOf } from '@kbn/utility-types'; import { SharePluginStart } from '@kbn/share-plugin/server'; -import type { FieldMap } from '@kbn/alerts-as-data-utils'; +import type { DefaultAlert, FieldMap } from '@kbn/alerts-as-data-utils'; import { Alert } from '@kbn/alerts-as-data-utils'; import { Filter } from '@kbn/es-query'; import { RuleTypeRegistry as OrigruleTypeRegistry } from './rule_type_registry'; @@ -209,6 +209,12 @@ export type FormatAlert = ( alert: Partial ) => Partial; +export const DEFAULT_AAD_CONFIG: IRuleTypeAlerts = { + context: `default`, + mappings: { fieldMap: {} }, + shouldWrite: true, +}; + export interface IRuleTypeAlerts { /** * Specifies the target alerts-as-data resource From 46fbfd3b13c80d49e51b6b1541fecebb7c628e02 Mon Sep 17 00:00:00 2001 From: Lukas Olson Date: Tue, 9 Jan 2024 09:24:12 -0700 Subject: [PATCH 05/20] Fix issue with KQL wildcard queries not properly escaping backslashes (#174464) ## Summary Fixes https://github.com/elastic/kibana/issues/169709. Prior to this PR, KQL queries against keyword fields would not properly handle escaped special characters (such as backslash). This PR fixes the behavior to properly re-escape special characters before sending them along to the wildcard query. ### Checklist - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios ### Release note KQL queries against wildcards now properly handle escaped special characters without requiring double-escaping. Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../src/kuery/functions/is.test.ts | 23 +++++++++++++++++++ .../kbn-es-query/src/kuery/functions/is.ts | 2 +- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/packages/kbn-es-query/src/kuery/functions/is.test.ts b/packages/kbn-es-query/src/kuery/functions/is.test.ts index a19c951c184a9..5b52eff548ed3 100644 --- a/packages/kbn-es-query/src/kuery/functions/is.test.ts +++ b/packages/kbn-es-query/src/kuery/functions/is.test.ts @@ -253,6 +253,29 @@ describe('kuery functions', () => { expect(result).toEqual(expected); }); + test('should create a wildcard query with backslashes properly escaped', () => { + const expected = { + bool: { + should: [ + { + wildcard: { + 'machine.os.keyword': { value: '*\\\\*' }, + }, + }, + ], + minimum_should_match: 1, + }, + }; + const node = nodeTypes.function.buildNode( + 'is', + 'machine.os.keyword', + '*\\\\*' + ) as KqlIsFunctionNode; + const result = is.toElasticsearchQuery(node, indexPattern); + + expect(result).toEqual(expected); + }); + test('should support scripted fields', () => { const node = nodeTypes.function.buildNode( 'is', diff --git a/packages/kbn-es-query/src/kuery/functions/is.ts b/packages/kbn-es-query/src/kuery/functions/is.ts index 55bce74973741..46a6acfc56ff9 100644 --- a/packages/kbn-es-query/src/kuery/functions/is.ts +++ b/packages/kbn-es-query/src/kuery/functions/is.ts @@ -159,7 +159,7 @@ export function toElasticsearchQuery( ? { wildcard: { [field.name]: { - value, + value: wildcard.toQueryStringQuery(valueArg), ...(typeof config.caseInsensitive === 'boolean' && { case_insensitive: config.caseInsensitive, }), From ea01b20cd6f979ce9b2e018107355925034feb5a Mon Sep 17 00:00:00 2001 From: Candace Park <56409205+parkiino@users.noreply.github.com> Date: Tue, 9 Jan 2024 12:11:51 -0500 Subject: [PATCH 06/20] [Security Solution] Add Integration bottom bar positioned changed from fixed to sticky (#174494) ## Summary - [x] Fixes a bug where the bottom bar becomes uncentered when the side navigation panel is open This bug was most likely caused by this change here: https://github.com/elastic/kibana/commit/0a2148f854b159240b0c1c72abc5a0740f5ee8aa. Since this scss rule was added to `fixed` bottom bars only, making the bottom bar position `sticky` seemed like the best solution that will not affect other areas of the app. One difference from the fixed position is that if the window size is bigger than the onboarding directions, the bottom bar will not be touching the bottom of the viewing window. ## Screenshot BEFORE ![image](https://github.com/elastic/kibana/assets/56409205/63b6d90f-7905-4e65-9bfd-a982ca2ac871) ![image](https://github.com/elastic/kibana/assets/56409205/9760b5a9-a97f-4e63-a6cb-4c90cbc55470) AFTER ![image](https://github.com/elastic/kibana/assets/56409205/9fdf89a5-f801-473f-8416-722b7978fcfe) ![image](https://github.com/elastic/kibana/assets/56409205/edf7ce39-f149-4d46-890f-b1f99cf77f43) Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../multi_page_layout/components/bottom_bar.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/multi_page_layout/components/bottom_bar.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/multi_page_layout/components/bottom_bar.tsx index 64d13e12b36d6..4ed07b65448f2 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/multi_page_layout/components/bottom_bar.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/multi_page_layout/components/bottom_bar.tsx @@ -50,7 +50,7 @@ export const CreatePackagePolicyBottomBar: React.FC<{ }) => { const Bar = noAnimation ? NoAnimationCenteredRoundedBottomBar : CenteredRoundedBottomBar; return ( - + From 60c3ff05a665448b5a472dc0c6c5886d4557c679 Mon Sep 17 00:00:00 2001 From: Saarika Bhasi <55930906+saarikabhasi@users.noreply.github.com> Date: Tue, 9 Jan 2024 12:17:09 -0500 Subject: [PATCH 07/20] [Serverless Search] Fix failing MKI tests for connectors UI (#174488) In this PR, * Added fix to wait for connector edit name form to disappear, before validating connector name * Removed `failsOnMKI` tag added for connectors FTR tests Thus, fixing failing MKI tests for connectors UI in cloud project. Tested in : * Serverless [QA](https://console.qa.cld.elstc.co/) cloud project following instructions from [Kibana Serverless e2e Test Guide](https://docs.google.com/document/d/1tiax7xoDYwFXYZjRTgVKkVMjN-SQzBWk4yn1JY6Z5UY/edit?pli=1#heading=h.ece2z8p74izh) * [Production](https://cloud.elastic.co) deployment * local FTR tests. --- .../functional/page_objects/svl_search_connectors_page.ts | 6 ++++++ .../test_suites/search/connectors/connectors_overview.ts | 4 +--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/x-pack/test_serverless/functional/page_objects/svl_search_connectors_page.ts b/x-pack/test_serverless/functional/page_objects/svl_search_connectors_page.ts index f610251bf0719..a3010b44d9820 100644 --- a/x-pack/test_serverless/functional/page_objects/svl_search_connectors_page.ts +++ b/x-pack/test_serverless/functional/page_objects/svl_search_connectors_page.ts @@ -40,6 +40,12 @@ export function SvlSearchConnectorsPageProvider({ getService }: FtrProviderConte await testSubjects.existOrFail('serverlessSearchCancelNameButton'); await testSubjects.setValue('serverlessSearchEditNameFieldText', name); await testSubjects.click('serverlessSearchSaveNameButton'); + await retry.waitForWithTimeout('edit name form to disappear', 2000, () => + testSubjects + .missingOrFail('serverlessSearchSaveNameButton') + .then(() => true) + .catch(() => false) + ); await testSubjects.exists('serverlessSearchConnectorName'); expect(await testSubjects.getVisibleText('serverlessSearchConnectorName')).to.be(name); }, diff --git a/x-pack/test_serverless/functional/test_suites/search/connectors/connectors_overview.ts b/x-pack/test_serverless/functional/test_suites/search/connectors/connectors_overview.ts index c185b3c3a0c98..a3b81edb3ca65 100644 --- a/x-pack/test_serverless/functional/test_suites/search/connectors/connectors_overview.ts +++ b/x-pack/test_serverless/functional/test_suites/search/connectors/connectors_overview.ts @@ -16,8 +16,6 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { const testSubjects = getService('testSubjects'); const browser = getService('browser'); describe('connectors', function () { - // failsOnMKI, see https://github.com/elastic/kibana/issues/173929 - this.tags(['failsOnMKI']); before(async () => { await pageObjects.svlCommonPage.login(); await pageObjects.svlCommonNavigation.sidenav.clickLink({ @@ -65,7 +63,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { pageObjects.svlSearchConnectorsPage.connectorOverviewPage.expectSearchBarToExist(); }); - it('searchBar and select filter connector table', async () => { + it('searchBar and select, filters connector table', async () => { pageObjects.svlSearchConnectorsPage.connectorOverviewPage.getConnectorFromConnectorTable( TEST_CONNECTOR_NAME ); From 315cf9d399c62a69dd02a1aed5ce7118ffa9885a Mon Sep 17 00:00:00 2001 From: Davis Plumlee <56367316+dplumlee@users.noreply.github.com> Date: Tue, 9 Jan 2024 13:09:40 -0600 Subject: [PATCH 08/20] [Security Solution] Adds tests for coverage overview page (#168058) **Resolves: https://github.com/elastic/kibana/issues/162250** ## Summary Adds remaining unit, api integration, and e2e cypress tests for the coverage overview page in accordance to the [existing test plan](https://github.com/elastic/kibana/blob/main/x-pack/plugins/security_solution/docs/testing/test_plans/detection_response/rule_management/coverage_overview_dashboard.md) - [Flaky test runner build](https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/4756) ### Checklist Delete any items that are not applicable to this PR. - [x] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md) - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios ### For maintainers - [ ] This was checked for breaking API changes and was [labeled appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) --- .buildkite/ftr_configs.yml | 2 + .github/CODEOWNERS | 1 + .../coverage_overview_route.test.ts | 121 ++++ .../coverage_overview_dashboard.md | 4 +- .../use_fetch_coverage_overview_query.ts | 9 + .../coverage_overview_dashboard.tsx | 7 +- .../coverage_overview/rule_source_filter.tsx | 2 +- .../coverage_overview/technique_panel.tsx | 2 +- .../pages/coverage_overview/translations.ts | 7 + .../mitre/mitre_tactics_techniques.ts | 134 +++- .../detections/mitre/valid_threat_mock.ts | 2 +- .../extract_tactics_techniques_mitre.js | 64 +- .../basic/tests/coverage_overview.ts | 510 ------------- .../basic/tests/index.ts | 1 - .../utils/create_non_security_rule.ts | 42 -- .../utils/index.ts | 1 - .../package.json | 6 + .../rule_management/configs/ess.config.ts | 22 + .../configs/serverless.config.ts | 15 + .../rule_management/coverage_overview.ts | 670 ++++++++++++++++++ .../rule_management/index.ts | 13 + .../utils/rules/create_non_security_rule.ts | 1 + .../utils/rules/get_coverage_overview.ts | 28 + .../coverage_overview/coverage_overview.cy.ts | 439 ++++++++++++ .../cypress/objects/rule.ts | 42 +- .../screens/rules_coverage_overview.ts | 39 + .../cypress/tasks/rules_coverage_overview.ts | 51 ++ .../cypress/urls/rules_management.ts | 1 + 28 files changed, 1626 insertions(+), 610 deletions(-) create mode 100644 x-pack/plugins/security_solution/common/api/detection_engine/rule_management/coverage_overview/coverage_overview_route.test.ts delete mode 100644 x-pack/test/detection_engine_api_integration/basic/tests/coverage_overview.ts delete mode 100644 x-pack/test/detection_engine_api_integration/utils/create_non_security_rule.ts create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/basic_essentials_license/rule_management/configs/ess.config.ts create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/basic_essentials_license/rule_management/configs/serverless.config.ts create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/basic_essentials_license/rule_management/coverage_overview.ts create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/basic_essentials_license/rule_management/index.ts create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/get_coverage_overview.ts create mode 100644 x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/coverage_overview/coverage_overview.cy.ts create mode 100644 x-pack/test/security_solution_cypress/cypress/screens/rules_coverage_overview.ts create mode 100644 x-pack/test/security_solution_cypress/cypress/tasks/rules_coverage_overview.ts diff --git a/.buildkite/ftr_configs.yml b/.buildkite/ftr_configs.yml index cd0c62dd4c5e6..17a357c71640b 100644 --- a/.buildkite/ftr_configs.yml +++ b/.buildkite/ftr_configs.yml @@ -496,6 +496,8 @@ enabled: - x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/telemetry/configs/ess.config.ts - x-pack/test/security_solution_api_integration/test_suites/detections_response/basic_essentials_license/detection_engine/configs/serverless.config.ts - x-pack/test/security_solution_api_integration/test_suites/detections_response/basic_essentials_license/detection_engine/configs/ess.config.ts + - x-pack/test/security_solution_api_integration/test_suites/detections_response/basic_essentials_license/rule_management/configs/serverless.config.ts + - x-pack/test/security_solution_api_integration/test_suites/detections_response/basic_essentials_license/rule_management/configs/ess.config.ts - x-pack/test/security_solution_api_integration/test_suites/lists_and_exception_lists/default_license/exception_lists_items/configs/serverless.config.ts - x-pack/test/security_solution_api_integration/test_suites/lists_and_exception_lists/default_license/exception_lists_items/configs/ess.config.ts - x-pack/test/security_solution_api_integration/test_suites/lists_and_exception_lists/default_license/lists_items/configs/serverless.config.ts diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 25072d13147de..ec817aca7a118 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1378,6 +1378,7 @@ x-pack/test/security_solution_cypress/cypress/tasks/expandable_flyout @elastic/ /x-pack/plugins/security_solution/docs/testing/test_plans/detection_response/prebuilt_rules @elastic/security-detection-rule-management /x-pack/plugins/security_solution/docs/testing/test_plans/detection_response/rule_management @elastic/security-detection-rule-management /x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules @elastic/security-detection-rule-management +/x-pack/test/security_solution_api_integration/test_suites/detections_response/basic_essentials_license/rule_management @elastic/security-detection-rule-management /x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/rule_delete @elastic/security-detection-rule-management x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/rule_update @elastic/security-detection-rule-management /x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/rule_patch @elastic/security-detection-rule-management diff --git a/x-pack/plugins/security_solution/common/api/detection_engine/rule_management/coverage_overview/coverage_overview_route.test.ts b/x-pack/plugins/security_solution/common/api/detection_engine/rule_management/coverage_overview/coverage_overview_route.test.ts new file mode 100644 index 0000000000000..dd8b2501b90a7 --- /dev/null +++ b/x-pack/plugins/security_solution/common/api/detection_engine/rule_management/coverage_overview/coverage_overview_route.test.ts @@ -0,0 +1,121 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { left } from 'fp-ts/lib/Either'; +import { exactCheck, foldLeftRight, getPaths } from '@kbn/securitysolution-io-ts-utils'; +import { + CoverageOverviewRequestBody, + CoverageOverviewRuleActivity, + CoverageOverviewRuleSource, +} from './coverage_overview_route'; + +describe('Coverage overview request schema', () => { + test('empty object validates', () => { + const payload: CoverageOverviewRequestBody = {}; + + const decoded = CoverageOverviewRequestBody.decode(payload); + const checked = exactCheck(payload, decoded); + const message = foldLeftRight(checked); + + expect(getPaths(left(message.errors))).toEqual([]); + expect(message.schema).toEqual(payload); + }); + + test('validates with all fields populated', () => { + const payload: CoverageOverviewRequestBody = { + filter: { + activity: [CoverageOverviewRuleActivity.Enabled, CoverageOverviewRuleActivity.Disabled], + source: [CoverageOverviewRuleSource.Custom, CoverageOverviewRuleSource.Prebuilt], + search_term: 'search term', + }, + }; + + const decoded = CoverageOverviewRequestBody.decode(payload); + const checked = exactCheck(payload, decoded); + const message = foldLeftRight(checked); + + expect(getPaths(left(message.errors))).toEqual([]); + expect(message.schema).toEqual(payload); + }); + + test('does NOT validate with extra fields', () => { + const payload: CoverageOverviewRequestBody & { invalid_field: string } = { + filter: { + activity: [CoverageOverviewRuleActivity.Enabled, CoverageOverviewRuleActivity.Disabled], + source: [CoverageOverviewRuleSource.Custom, CoverageOverviewRuleSource.Prebuilt], + search_term: 'search term', + }, + invalid_field: 'invalid field', + }; + + const decoded = CoverageOverviewRequestBody.decode(payload); + const checked = exactCheck(payload, decoded); + const message = foldLeftRight(checked); + + expect(getPaths(left(message.errors))).toEqual(['invalid keys "invalid_field"']); + expect(message.schema).toEqual({}); + }); + + test('does NOT validate with invalid filter values', () => { + const payload: CoverageOverviewRequestBody = { + filter: { + // @ts-expect-error + activity: ['Wrong activity field'], + // @ts-expect-error + source: ['Wrong source field'], + search_term: 'search term', + }, + }; + + const decoded = CoverageOverviewRequestBody.decode(payload); + const checked = exactCheck(payload, decoded); + const message = foldLeftRight(checked); + + expect(getPaths(left(message.errors))).toEqual([ + 'Invalid value "Wrong activity field" supplied to "filter,activity"', + 'Invalid value "Wrong source field" supplied to "filter,source"', + ]); + expect(message.schema).toEqual({}); + }); + + test('does NOT validate with empty filter arrays', () => { + const payload: CoverageOverviewRequestBody = { + filter: { + activity: [], + source: [], + search_term: 'search term', + }, + }; + + const decoded = CoverageOverviewRequestBody.decode(payload); + const checked = exactCheck(payload, decoded); + const message = foldLeftRight(checked); + + expect(getPaths(left(message.errors))).toEqual([ + 'Invalid value "[]" supplied to "filter,activity"', + 'Invalid value "[]" supplied to "filter,source"', + ]); + expect(message.schema).toEqual({}); + }); + + test('does NOT validate with empty search_term', () => { + const payload: CoverageOverviewRequestBody = { + filter: { + search_term: '', + }, + }; + + const decoded = CoverageOverviewRequestBody.decode(payload); + const checked = exactCheck(payload, decoded); + const message = foldLeftRight(checked); + + expect(getPaths(left(message.errors))).toEqual([ + 'Invalid value "" supplied to "filter,search_term"', + ]); + expect(message.schema).toEqual({}); + }); +}); diff --git a/x-pack/plugins/security_solution/docs/testing/test_plans/detection_response/rule_management/coverage_overview_dashboard.md b/x-pack/plugins/security_solution/docs/testing/test_plans/detection_response/rule_management/coverage_overview_dashboard.md index 08f23aceda9b9..86170a9e4c405 100644 --- a/x-pack/plugins/security_solution/docs/testing/test_plans/detection_response/rule_management/coverage_overview_dashboard.md +++ b/x-pack/plugins/security_solution/docs/testing/test_plans/detection_response/rule_management/coverage_overview_dashboard.md @@ -24,9 +24,9 @@ Status: `in progress`. The current test plan matches `Milestone 1 - MVP` of the - **Rule Source**: The filter type defining rule type, current options are `prebuilt`(from elastic prebuilt rules package) and `custom`(created by user) --**Initial filter state**: The filters present on initial page load. Rule activity will be set to `enabled`, rule source will be set to `prebuilt` and `custom` simultaneously. +- **Initial filter state**: The filters present on initial page load. Rule activity will be set to `enabled`, rule source will be set to `prebuilt` and `custom` simultaneously. --**Dashboard containing the rule data**: The normal render of the coverage overview dashboard. Any returned rule data mapped correctly to the tile layout of all the MITRE data in a colored grid +- **Dashboard containing the rule data**: The normal render of the coverage overview dashboard. Any returned rule data mapped correctly to the tile layout of all the MITRE data in a colored grid ### Assumptions diff --git a/x-pack/plugins/security_solution/public/detection_engine/rule_management/api/hooks/use_fetch_coverage_overview_query.ts b/x-pack/plugins/security_solution/public/detection_engine/rule_management/api/hooks/use_fetch_coverage_overview_query.ts index 2866245bb4e87..7f27e08164fe3 100644 --- a/x-pack/plugins/security_solution/public/detection_engine/rule_management/api/hooks/use_fetch_coverage_overview_query.ts +++ b/x-pack/plugins/security_solution/public/detection_engine/rule_management/api/hooks/use_fetch_coverage_overview_query.ts @@ -8,12 +8,14 @@ import type { UseQueryOptions } from '@tanstack/react-query'; import { useQuery, useQueryClient } from '@tanstack/react-query'; import { useCallback } from 'react'; +import * as i18n from '../../../rule_management_ui/pages/coverage_overview/translations'; import type { CoverageOverviewFilter } from '../../../../../common/api/detection_engine'; import { RULE_MANAGEMENT_COVERAGE_OVERVIEW_URL } from '../../../../../common/api/detection_engine'; import { fetchCoverageOverview } from '../api'; import { buildCoverageOverviewDashboardModel } from '../../logic/coverage_overview/build_coverage_overview_dashboard_model'; import type { CoverageOverviewDashboard } from '../../model/coverage_overview/dashboard'; import { DEFAULT_QUERY_OPTIONS } from './constants'; +import { useAppToasts } from '../../../../common/hooks/use_app_toasts'; const COVERAGE_OVERVIEW_QUERY_KEY = ['POST', RULE_MANAGEMENT_COVERAGE_OVERVIEW_URL]; @@ -29,6 +31,8 @@ export const useFetchCoverageOverviewQuery = ( filter: CoverageOverviewFilter = {}, options?: UseQueryOptions ) => { + const { addError } = useAppToasts(); + return useQuery( [...COVERAGE_OVERVIEW_QUERY_KEY, filter], async ({ signal }) => { @@ -39,6 +43,11 @@ export const useFetchCoverageOverviewQuery = ( { ...DEFAULT_QUERY_OPTIONS, ...options, + onError: (error) => { + addError(error, { + title: i18n.COVERAGE_OVERVIEW_FETCH_ERROR_TITLE, + }); + }, } ); }; diff --git a/x-pack/plugins/security_solution/public/detection_engine/rule_management_ui/pages/coverage_overview/coverage_overview_dashboard.tsx b/x-pack/plugins/security_solution/public/detection_engine/rule_management_ui/pages/coverage_overview/coverage_overview_dashboard.tsx index 11ee8f0d70bbc..fb14abd42ee61 100644 --- a/x-pack/plugins/security_solution/public/detection_engine/rule_management_ui/pages/coverage_overview/coverage_overview_dashboard.tsx +++ b/x-pack/plugins/security_solution/public/detection_engine/rule_management_ui/pages/coverage_overview/coverage_overview_dashboard.tsx @@ -40,7 +40,12 @@ const CoverageOverviewDashboardComponent = () => { {data?.mitreTactics.map((tactic) => ( - + diff --git a/x-pack/plugins/security_solution/public/detection_engine/rule_management_ui/pages/coverage_overview/rule_source_filter.tsx b/x-pack/plugins/security_solution/public/detection_engine/rule_management_ui/pages/coverage_overview/rule_source_filter.tsx index fd1995beb68d7..e55450f0a069a 100644 --- a/x-pack/plugins/security_solution/public/detection_engine/rule_management_ui/pages/coverage_overview/rule_source_filter.tsx +++ b/x-pack/plugins/security_solution/public/detection_engine/rule_management_ui/pages/coverage_overview/rule_source_filter.tsx @@ -87,7 +87,7 @@ const RuleSourceFilterComponent = ({ `} > - +

{technique.name}

{SubtechniqueInfo} diff --git a/x-pack/plugins/security_solution/public/detection_engine/rule_management_ui/pages/coverage_overview/translations.ts b/x-pack/plugins/security_solution/public/detection_engine/rule_management_ui/pages/coverage_overview/translations.ts index eb9f06c350421..f61fa72e7f322 100644 --- a/x-pack/plugins/security_solution/public/detection_engine/rule_management_ui/pages/coverage_overview/translations.ts +++ b/x-pack/plugins/security_solution/public/detection_engine/rule_management_ui/pages/coverage_overview/translations.ts @@ -177,3 +177,10 @@ export const CoverageOverviewDashboardInformation = i18n.translate( "Your current coverage of MITRE ATT&CK\u00AE tactics and techniques, based on installed rules. Click a cell to view and enable a technique's rules. Rules must be mapped to the MITRE ATT&CK\u00AE framework to be displayed.", } ); + +export const COVERAGE_OVERVIEW_FETCH_ERROR_TITLE = i18n.translate( + 'xpack.securitySolution.coverageOverviewDashboard.fetchErrorTitle', + { + defaultMessage: 'Failed to fetch coverage overview data', + } +); diff --git a/x-pack/plugins/security_solution/public/detections/mitre/mitre_tactics_techniques.ts b/x-pack/plugins/security_solution/public/detections/mitre/mitre_tactics_techniques.ts index 6846462b94c63..abfd92ca074ac 100644 --- a/x-pack/plugins/security_solution/public/detections/mitre/mitre_tactics_techniques.ts +++ b/x-pack/plugins/security_solution/public/detections/mitre/mitre_tactics_techniques.ts @@ -7251,27 +7251,123 @@ export const subtechniques: MitreSubTechnique[] = [ ]; /** - * A full object of Mitre Attack Threat data that is taken directly from the `mitre_tactics_techniques.ts` file + * An array of full Mitre Attack Threat objects that are taken directly from the `mitre_tactics_techniques.ts` file * * Is built alongside and sampled from the data in the file so to always be valid with the most up to date MITRE ATT&CK data */ -export const getMockThreatData = () => ({ - tactic: { - name: 'Credential Access', - id: 'TA0006', - reference: 'https://attack.mitre.org/tactics/TA0006', - }, - technique: { - name: 'OS Credential Dumping', - id: 'T1003', - reference: 'https://attack.mitre.org/techniques/T1003', - tactics: ['credential-access'], +export const getMockThreatData = () => [ + { + tactic: { + name: 'Credential Access', + id: 'TA0006', + reference: 'https://attack.mitre.org/tactics/TA0006', + }, + technique: { + name: 'OS Credential Dumping', + id: 'T1003', + reference: 'https://attack.mitre.org/techniques/T1003', + tactics: ['credential-access'], + }, + subtechnique: { + name: '/etc/passwd and /etc/shadow', + id: 'T1003.008', + reference: 'https://attack.mitre.org/techniques/T1003/008', + tactics: ['credential-access'], + techniqueId: 'T1003', + }, + }, + { + tactic: { + name: 'Credential Access', + id: 'TA0006', + reference: 'https://attack.mitre.org/tactics/TA0006', + }, + technique: { + name: 'Steal or Forge Kerberos Tickets', + id: 'T1558', + reference: 'https://attack.mitre.org/techniques/T1558', + tactics: ['credential-access'], + }, + subtechnique: { + name: 'AS-REP Roasting', + id: 'T1558.004', + reference: 'https://attack.mitre.org/techniques/T1558/004', + tactics: ['credential-access'], + techniqueId: 'T1558', + }, + }, + { + tactic: { + name: 'Persistence', + id: 'TA0003', + reference: 'https://attack.mitre.org/tactics/TA0003', + }, + technique: { + name: 'Boot or Logon Autostart Execution', + id: 'T1547', + reference: 'https://attack.mitre.org/techniques/T1547', + tactics: ['persistence', 'privilege-escalation'], + }, + subtechnique: { + name: 'Active Setup', + id: 'T1547.014', + reference: 'https://attack.mitre.org/techniques/T1547/014', + tactics: ['persistence', 'privilege-escalation'], + techniqueId: 'T1547', + }, + }, + { + tactic: { + name: 'Persistence', + id: 'TA0003', + reference: 'https://attack.mitre.org/tactics/TA0003', + }, + technique: { + name: 'Account Manipulation', + id: 'T1098', + reference: 'https://attack.mitre.org/techniques/T1098', + tactics: ['persistence'], + }, + subtechnique: { + name: 'Additional Cloud Credentials', + id: 'T1098.001', + reference: 'https://attack.mitre.org/techniques/T1098/001', + tactics: ['persistence'], + techniqueId: 'T1098', + }, }, - subtechnique: { - name: '/etc/passwd and /etc/shadow', - id: 'T1003.008', - reference: 'https://attack.mitre.org/techniques/T1003/008', - tactics: ['credential-access'], - techniqueId: 'T1003', +]; + +/** + * An array of specifically chosen Mitre Attack Threat objects that is taken directly from the `mitre_tactics_techniques.ts` file + * + * These objects have identical technique fields but are assigned to different tactics + */ +export const getDuplicateTechniqueThreatData = () => [ + { + tactic: { + name: 'Privilege Escalation', + id: 'TA0004', + reference: 'https://attack.mitre.org/tactics/TA0004', + }, + technique: { + name: 'Event Triggered Execution', + id: 'T1546', + reference: 'https://attack.mitre.org/techniques/T1546', + tactics: ['privilege-escalation', 'persistence'], + }, + }, + { + tactic: { + name: 'Persistence', + id: 'TA0003', + reference: 'https://attack.mitre.org/tactics/TA0003', + }, + technique: { + name: 'Event Triggered Execution', + id: 'T1546', + reference: 'https://attack.mitre.org/techniques/T1546', + tactics: ['privilege-escalation', 'persistence'], + }, }, -}); +]; diff --git a/x-pack/plugins/security_solution/public/detections/mitre/valid_threat_mock.ts b/x-pack/plugins/security_solution/public/detections/mitre/valid_threat_mock.ts index c084a8a01d58e..f7885a26d119f 100644 --- a/x-pack/plugins/security_solution/public/detections/mitre/valid_threat_mock.ts +++ b/x-pack/plugins/security_solution/public/detections/mitre/valid_threat_mock.ts @@ -8,7 +8,7 @@ import type { Threats } from '@kbn/securitysolution-io-ts-alerting-types'; import { getMockThreatData } from './mitre_tactics_techniques'; -const { tactic, technique, subtechnique } = getMockThreatData(); +const { tactic, technique, subtechnique } = getMockThreatData()[0]; const { tactics, ...mockTechnique } = technique; const { tactics: subtechniqueTactics, ...mockSubtechnique } = subtechnique; diff --git a/x-pack/plugins/security_solution/scripts/extract_tactics_techniques_mitre.js b/x-pack/plugins/security_solution/scripts/extract_tactics_techniques_mitre.js index ee037cae293b2..1f8526538e8c9 100644 --- a/x-pack/plugins/security_solution/scripts/extract_tactics_techniques_mitre.js +++ b/x-pack/plugins/security_solution/scripts/extract_tactics_techniques_mitre.js @@ -22,6 +22,15 @@ const OUTPUT_DIRECTORY = resolve('public', 'detections', 'mitre'); const MITRE_CONTENT_VERSION = 'ATT&CK-v13.1'; // last updated when preparing for 8.10.3 release const MITRE_CONTENT_URL = `https://raw.githubusercontent.com/mitre/cti/${MITRE_CONTENT_VERSION}/enterprise-attack/enterprise-attack.json`; +/** + * An ID for a technique that exists in multiple tactics. This may change in further updates and on MITRE + * version upgrade, this ID should be double-checked to make sure it still represents these parameters. + * + * We have this in order to cover edge cases with our mock data that can't be achieved by simply generating + * data from the MITRE api. + */ +const MOCK_DUPLICATE_TECHNIQUE_ID = 'T1546'; + const getTacticsOptions = (tactics) => tactics.map((t) => `{ @@ -172,15 +181,37 @@ const extractSubtechniques = (mitreData) => { }; const buildMockThreatData = (tacticsData, techniques, subtechniques) => { - const subtechnique = subtechniques[0]; - const technique = techniques.find((technique) => technique.id === subtechnique.techniqueId); - const tactic = tacticsData.find((tactic) => tactic.shortName === technique.tactics[0]); - - return { - tactic: normalizeTacticsData([tactic])[0], - technique, - subtechnique, - }; + const numberOfThreatsToGenerate = 4; + const mockThreatData = []; + for (let i = 0; i < numberOfThreatsToGenerate; i++) { + const subtechnique = subtechniques[i * 2]; // Double our interval to broaden the subtechnique types we're pulling data from a bit + const technique = techniques.find((technique) => technique.id === subtechnique.techniqueId); + const tactic = tacticsData.find((tactic) => tactic.shortName === technique.tactics[0]); + + mockThreatData.push({ + tactic: normalizeTacticsData([tactic])[0], + technique, + subtechnique, + }); + } + return mockThreatData; +}; + +const buildDuplicateTechniqueMockThreatData = (tacticsData, techniques) => { + const technique = techniques.find((technique) => technique.id === MOCK_DUPLICATE_TECHNIQUE_ID); + const tacticOne = tacticsData.find((tactic) => tactic.shortName === technique.tactics[0]); + const tacticTwo = tacticsData.find((tactic) => tactic.shortName === technique.tactics[1]); + + return [ + { + tactic: normalizeTacticsData([tacticOne])[0], + technique, + }, + { + tactic: normalizeTacticsData([tacticTwo])[0], + technique, + }, + ]; }; async function main() { @@ -224,7 +255,7 @@ async function main() { .replace(/"{/g, '{')}; /** - * A full object of Mitre Attack Threat data that is taken directly from the \`mitre_tactics_techniques.ts\` file + * An array of full Mitre Attack Threat objects that are taken directly from the \`mitre_tactics_techniques.ts\` file * * Is built alongside and sampled from the data in the file so to always be valid with the most up to date MITRE ATT&CK data */ @@ -235,6 +266,19 @@ async function main() { ) .replace(/}"/g, '}') .replace(/"{/g, '{')}); + + /** + * An array of specifically chosen Mitre Attack Threat objects that is taken directly from the \`mitre_tactics_techniques.ts\` file + * + * These objects have identical technique fields but are assigned to different tactics + */ + export const getDuplicateTechniqueThreatData = () => (${JSON.stringify( + buildDuplicateTechniqueMockThreatData(tacticsData, techniques), + null, + 2 + ) + .replace(/}"/g, '}') + .replace(/"{/g, '{')}); `; fs.writeFileSync(`${OUTPUT_DIRECTORY}/mitre_tactics_techniques.ts`, body, 'utf-8'); diff --git a/x-pack/test/detection_engine_api_integration/basic/tests/coverage_overview.ts b/x-pack/test/detection_engine_api_integration/basic/tests/coverage_overview.ts deleted file mode 100644 index b40033b5eb17e..0000000000000 --- a/x-pack/test/detection_engine_api_integration/basic/tests/coverage_overview.ts +++ /dev/null @@ -1,510 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import expect from '@kbn/expect'; - -import { - RULE_MANAGEMENT_COVERAGE_OVERVIEW_URL, - ThreatArray, -} from '@kbn/security-solution-plugin/common/api/detection_engine'; -import { FtrProviderContext } from '../../common/ftr_provider_context'; -import { - createPrebuiltRuleAssetSavedObjects, - createRuleAssetSavedObject, - createRule, - deleteAllRules, - getSimpleRule, - installPrebuiltRulesAndTimelines, - createNonSecurityRule, -} from '../../utils'; - -// eslint-disable-next-line import/no-default-export -export default ({ getService }: FtrProviderContext): void => { - const supertest = getService('supertest'); - const log = getService('log'); - const es = getService('es'); - - describe('coverage_overview', () => { - beforeEach(async () => { - await deleteAllRules(supertest, log); - }); - - it('does NOT error when there are no security rules', async () => { - await createNonSecurityRule(supertest); - const rule1 = await createRule(supertest, log, { - ...getSimpleRule(), - threat: generateThreatArray(1), - }); - - const { body } = await supertest - .post(RULE_MANAGEMENT_COVERAGE_OVERVIEW_URL) - .set('kbn-xsrf', 'true') - .set('elastic-api-version', '1') - .send({}) - .expect(200); - - expect(body).to.eql({ - coverage: { - T001: [rule1.id], - TA001: [rule1.id], - 'T001.001': [rule1.id], - }, - unmapped_rule_ids: [], - rules_data: { - [rule1.id]: { - activity: 'disabled', - name: 'Simple Rule Query', - }, - }, - }); - }); - - describe('without filters', () => { - it('returns an empty response if there are no rules', async () => { - const { body } = await supertest - .post(RULE_MANAGEMENT_COVERAGE_OVERVIEW_URL) - .set('kbn-xsrf', 'true') - .set('elastic-api-version', '1') - .send({}) - .expect(200); - - expect(body).to.eql({ - coverage: {}, - unmapped_rule_ids: [], - rules_data: {}, - }); - }); - - it('returns response with a single rule mapped to MITRE categories', async () => { - const rule1 = await createRule(supertest, log, { - ...getSimpleRule(), - threat: generateThreatArray(1), - }); - - const { body } = await supertest - .post(RULE_MANAGEMENT_COVERAGE_OVERVIEW_URL) - .set('kbn-xsrf', 'true') - .set('elastic-api-version', '1') - .send({}) - .expect(200); - - expect(body).to.eql({ - coverage: { - T001: [rule1.id], - TA001: [rule1.id], - 'T001.001': [rule1.id], - }, - unmapped_rule_ids: [], - rules_data: { - [rule1.id]: { - activity: 'disabled', - name: 'Simple Rule Query', - }, - }, - }); - }); - - it('returns response with an unmapped rule', async () => { - const rule1 = await createRule(supertest, log, { ...getSimpleRule(), threat: undefined }); - - const { body } = await supertest - .post(RULE_MANAGEMENT_COVERAGE_OVERVIEW_URL) - .set('kbn-xsrf', 'true') - .set('elastic-api-version', '1') - .send({}) - .expect(200); - - expect(body).to.eql({ - coverage: {}, - unmapped_rule_ids: [rule1.id], - rules_data: { - [rule1.id]: { - activity: 'disabled', - name: 'Simple Rule Query', - }, - }, - }); - }); - }); - - describe('with filters', () => { - describe('search_term', () => { - it('returns response filtered by tactic', async () => { - await createRule(supertest, log, { - ...getSimpleRule('rule-1'), - threat: generateThreatArray(1), - }); - const expectedRule = await createRule(supertest, log, { - ...getSimpleRule('rule-2'), - threat: generateThreatArray(2), - }); - - const { body } = await supertest - .post(RULE_MANAGEMENT_COVERAGE_OVERVIEW_URL) - .set('kbn-xsrf', 'true') - .set('elastic-api-version', '1') - .send({ - filter: { - search_term: 'TA002', - }, - }) - .expect(200); - - expect(body).to.eql({ - coverage: { - T002: [expectedRule.id], - TA002: [expectedRule.id], - 'T002.002': [expectedRule.id], - }, - unmapped_rule_ids: [], - rules_data: { - [expectedRule.id]: { - activity: 'disabled', - name: 'Simple Rule Query', - }, - }, - }); - }); - - it('returns response filtered by technique', async () => { - await createRule(supertest, log, { - ...getSimpleRule('rule-1'), - threat: generateThreatArray(1), - }); - const expectedRule = await createRule(supertest, log, { - ...getSimpleRule('rule-2'), - threat: generateThreatArray(2), - }); - - const { body } = await supertest - .post(RULE_MANAGEMENT_COVERAGE_OVERVIEW_URL) - .set('kbn-xsrf', 'true') - .set('elastic-api-version', '1') - .send({ - filter: { - search_term: 'T002', - }, - }) - .expect(200); - - expect(body).to.eql({ - coverage: { - T002: [expectedRule.id], - TA002: [expectedRule.id], - 'T002.002': [expectedRule.id], - }, - unmapped_rule_ids: [], - rules_data: { - [expectedRule.id]: { - activity: 'disabled', - name: 'Simple Rule Query', - }, - }, - }); - }); - - it('returns response filtered by subtechnique', async () => { - await createRule(supertest, log, { - ...getSimpleRule('rule-1'), - threat: generateThreatArray(1), - }); - const expectedRule = await createRule(supertest, log, { - ...getSimpleRule('rule-2'), - threat: generateThreatArray(2), - }); - - const { body } = await supertest - .post(RULE_MANAGEMENT_COVERAGE_OVERVIEW_URL) - .set('kbn-xsrf', 'true') - .set('elastic-api-version', '1') - .send({ - filter: { - search_term: 'T002.002', - }, - }) - .expect(200); - - expect(body).to.eql({ - coverage: { - T002: [expectedRule.id], - TA002: [expectedRule.id], - 'T002.002': [expectedRule.id], - }, - unmapped_rule_ids: [], - rules_data: { - [expectedRule.id]: { - activity: 'disabled', - name: 'Simple Rule Query', - }, - }, - }); - }); - - it('returns response filtered by rule name', async () => { - await createRule(supertest, log, getSimpleRule('rule-1')); - const expectedRule = await createRule(supertest, log, { - ...getSimpleRule('rule-2'), - name: 'rule-2', - }); - - const { body } = await supertest - .post(RULE_MANAGEMENT_COVERAGE_OVERVIEW_URL) - .set('kbn-xsrf', 'true') - .set('elastic-api-version', '1') - .send({ - filter: { - search_term: 'rule-2', - }, - }) - .expect(200); - - expect(body).to.eql({ - coverage: {}, - unmapped_rule_ids: [expectedRule.id], - rules_data: { - [expectedRule.id]: { - activity: 'disabled', - name: 'rule-2', - }, - }, - }); - }); - - it('returns response filtered by index pattern', async () => { - await createRule(supertest, log, { - ...getSimpleRule('rule-1'), - index: ['index-pattern-1'], - }); - const expectedRule = await createRule(supertest, log, { - ...getSimpleRule('rule-2'), - index: ['index-pattern-2'], - }); - - const { body } = await supertest - .post(RULE_MANAGEMENT_COVERAGE_OVERVIEW_URL) - .set('kbn-xsrf', 'true') - .set('elastic-api-version', '1') - .send({ - filter: { - search_term: 'index-pattern-2', - }, - }) - .expect(200); - - expect(body).to.eql({ - coverage: {}, - unmapped_rule_ids: [expectedRule.id], - rules_data: { - [expectedRule.id]: { - activity: 'disabled', - name: 'Simple Rule Query', - }, - }, - }); - }); - }); - - describe('activity', () => { - it('returns response filtered by disabled rules', async () => { - const expectedRule = await createRule(supertest, log, { - ...getSimpleRule('rule-1'), - threat: generateThreatArray(1), - }); - await createRule(supertest, log, { - ...getSimpleRule('rule-2', true), - threat: generateThreatArray(2), - }); - - const { body } = await supertest - .post(RULE_MANAGEMENT_COVERAGE_OVERVIEW_URL) - .set('kbn-xsrf', 'true') - .set('elastic-api-version', '1') - .send({ - filter: { - activity: ['disabled'], - }, - }) - .expect(200); - - expect(body).to.eql({ - coverage: { - T001: [expectedRule.id], - TA001: [expectedRule.id], - 'T001.001': [expectedRule.id], - }, - unmapped_rule_ids: [], - rules_data: { - [expectedRule.id]: { - activity: 'disabled', - name: 'Simple Rule Query', - }, - }, - }); - }); - - it('returns response filtered by enabled rules', async () => { - await createRule(supertest, log, { - ...getSimpleRule('rule-1'), - threat: generateThreatArray(1), - }); - const expectedRule = await createRule(supertest, log, { - ...getSimpleRule('rule-2', true), - threat: generateThreatArray(2), - }); - - const { body } = await supertest - .post(RULE_MANAGEMENT_COVERAGE_OVERVIEW_URL) - .set('kbn-xsrf', 'true') - .set('elastic-api-version', '1') - .send({ - filter: { - activity: ['enabled'], - }, - }) - .expect(200); - - expect(body).to.eql({ - coverage: { - T002: [expectedRule.id], - TA002: [expectedRule.id], - 'T002.002': [expectedRule.id], - }, - unmapped_rule_ids: [], - rules_data: { - [expectedRule.id]: { - activity: 'enabled', - name: 'Simple Rule Query', - }, - }, - }); - }); - - it('returns all rules if both enabled and disabled filters are specified in the request', async () => { - const expectedRule1 = await createRule(supertest, log, { - ...getSimpleRule('rule-1', false), - name: 'Disabled rule', - threat: generateThreatArray(1), - }); - const expectedRule2 = await createRule(supertest, log, { - ...getSimpleRule('rule-2', true), - name: 'Enabled rule', - threat: generateThreatArray(2), - }); - - const { body } = await supertest - .post(RULE_MANAGEMENT_COVERAGE_OVERVIEW_URL) - .set('kbn-xsrf', 'true') - .set('elastic-api-version', '1') - .send({ - filter: { - activity: ['enabled', 'disabled'], - }, - }) - .expect(200); - - expect(body).to.eql({ - coverage: { - T001: [expectedRule1.id], - TA001: [expectedRule1.id], - 'T001.001': [expectedRule1.id], - T002: [expectedRule2.id], - TA002: [expectedRule2.id], - 'T002.002': [expectedRule2.id], - }, - unmapped_rule_ids: [], - rules_data: { - [expectedRule1.id]: { - activity: 'disabled', - name: 'Disabled rule', - }, - [expectedRule2.id]: { - activity: 'enabled', - name: 'Enabled rule', - }, - }, - }); - }); - }); - - describe('source', () => { - it('returns response filtered by custom rules', async () => { - await createPrebuiltRuleAssetSavedObjects(es, [ - createRuleAssetSavedObject({ - rule_id: 'prebuilt-rule-1', - threat: generateThreatArray(1), - }), - ]); - await installPrebuiltRulesAndTimelines(es, supertest); - - const expectedRule = await createRule(supertest, log, { - ...getSimpleRule('rule-1'), - threat: generateThreatArray(2), - }); - - const { body } = await supertest - .post(RULE_MANAGEMENT_COVERAGE_OVERVIEW_URL) - .set('kbn-xsrf', 'true') - .set('elastic-api-version', '1') - .send({ - filter: { - source: ['custom'], - }, - }) - .expect(200); - - expect(body).to.eql({ - coverage: { - T002: [expectedRule.id], - TA002: [expectedRule.id], - 'T002.002': [expectedRule.id], - }, - unmapped_rule_ids: [], - rules_data: { - [expectedRule.id]: { - activity: 'disabled', - name: 'Simple Rule Query', - }, - }, - }); - }); - }); - }); - }); -}; - -function generateThreatArray(startIndex: number, count = 1): ThreatArray { - const result: ThreatArray = []; - - for (let i = 0; i < count; ++i) { - const indexName = (i + startIndex).toString().padStart(3, '0'); - - result.push({ - framework: 'MITRE ATT&CK', - tactic: { - id: `TA${indexName}`, - name: `Tactic ${indexName}`, - reference: `http://some-link-${indexName}`, - }, - technique: [ - { - id: `T${indexName}`, - name: `Technique ${indexName}`, - reference: `http://some-technique-link-${indexName}`, - subtechnique: [ - { - id: `T${indexName}.${indexName}`, - name: `Subtechnique ${indexName}`, - reference: `http://some-sub-technique-link-${indexName}`, - }, - ], - }, - ], - }); - } - - return result; -} diff --git a/x-pack/test/detection_engine_api_integration/basic/tests/index.ts b/x-pack/test/detection_engine_api_integration/basic/tests/index.ts index 5b3449707d38f..3ef462f7add2a 100644 --- a/x-pack/test/detection_engine_api_integration/basic/tests/index.ts +++ b/x-pack/test/detection_engine_api_integration/basic/tests/index.ts @@ -22,6 +22,5 @@ export default ({ loadTestFile }: FtrProviderContext): void => { loadTestFile(require.resolve('./patch_rules_bulk')); loadTestFile(require.resolve('./patch_rules')); loadTestFile(require.resolve('./import_timelines')); - loadTestFile(require.resolve('./coverage_overview')); }); }; diff --git a/x-pack/test/detection_engine_api_integration/utils/create_non_security_rule.ts b/x-pack/test/detection_engine_api_integration/utils/create_non_security_rule.ts deleted file mode 100644 index 09bc0f9b81a6d..0000000000000 --- a/x-pack/test/detection_engine_api_integration/utils/create_non_security_rule.ts +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import type SuperTest from 'supertest'; - -const SIMPLE_APM_RULE_DATA = { - name: 'Test rule', - rule_type_id: 'apm.anomaly', - enabled: false, - consumer: 'alerts', - tags: [], - actions: [], - params: { - windowSize: 30, - windowUnit: 'm', - anomalySeverityType: 'critical', - anomalyDetectorTypes: ['txLatency'], - environment: 'ENVIRONMENT_ALL', - }, - schedule: { - interval: '10m', - }, -}; - -/** - * Created a non security rule. Helpful in tests to verify functionality works with presence of non security rules. - * @param supertest The supertest deps - */ -export async function createNonSecurityRule( - supertest: SuperTest.SuperTest -): Promise { - await supertest - .post('/api/alerting/rule') - .set('kbn-xsrf', 'true') - .set('elastic-api-version', '2023-10-31') - .send(SIMPLE_APM_RULE_DATA) - .expect(200); -} diff --git a/x-pack/test/detection_engine_api_integration/utils/index.ts b/x-pack/test/detection_engine_api_integration/utils/index.ts index 1938a069a2f53..baa4be0491625 100644 --- a/x-pack/test/detection_engine_api_integration/utils/index.ts +++ b/x-pack/test/detection_engine_api_integration/utils/index.ts @@ -31,7 +31,6 @@ export * from './prebuilt_rules/create_prebuilt_rule_saved_objects'; export * from './prebuilt_rules/install_prebuilt_rules_and_timelines'; export * from './get_simple_rule_update'; export * from './get_simple_ml_rule_update'; -export * from './create_non_security_rule'; export * from './get_simple_rule_as_ndjson'; export * from './rule_to_ndjson'; export * from './delete_rule'; diff --git a/x-pack/test/security_solution_api_integration/package.json b/x-pack/test/security_solution_api_integration/package.json index 3c083278eedce..53acd95fe2515 100644 --- a/x-pack/test/security_solution_api_integration/package.json +++ b/x-pack/test/security_solution_api_integration/package.json @@ -156,6 +156,12 @@ "detection_engine_basicessentionals:qa:serverless": "npm run run-tests:dr:basicEssentials detection_engine serverless qaEnv", "detection_engine_basicessentionals:server:ess": "npm run initialize-server:dr:basicEssentials detection_engine ess", "detection_engine_basicessentionals:runner:ess": "npm run run-tests:dr:basicEssentials detection_engine ess essEnv", + + "rule_management_basicessentionals:server:serverless": "npm run initialize-server:dr:basicEssentials rule_management serverless", + "rule_management_basicessentionals:runner:serverless": "npm run run-tests:dr:basicEssentials rule_management serverless serverlessEnv", + "rule_management_basicessentionals:qa:serverless": "npm run run-tests:dr:basicEssentials rule_management serverless qaEnv", + "rule_management_basicessentionals:server:ess": "npm run initialize-server:dr:basicEssentials rule_management ess", + "rule_management_basicessentionals:runner:ess": "npm run run-tests:dr:basicEssentials rule_management ess essEnv", "exception_lists_items:server:serverless": "npm run initialize-server:lists:default exception_lists_items serverless", "exception_lists_items:runner:serverless": "npm run run-tests:lists:default exception_lists_items serverless serverlessEnv", diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/basic_essentials_license/rule_management/configs/ess.config.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/basic_essentials_license/rule_management/configs/ess.config.ts new file mode 100644 index 0000000000000..eaae21719c720 --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/basic_essentials_license/rule_management/configs/ess.config.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 { FtrConfigProviderContext } from '@kbn/test'; + +export default async function ({ readConfigFile }: FtrConfigProviderContext) { + const functionalConfig = await readConfigFile( + require.resolve('../../../../../config/ess/config.base.basic') + ); + + return { + ...functionalConfig.getAll(), + testFiles: [require.resolve('..')], + junit: { + reportName: 'Detection Engine ESS/ Rule management API Integration Tests', + }, + }; +} diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/basic_essentials_license/rule_management/configs/serverless.config.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/basic_essentials_license/rule_management/configs/serverless.config.ts new file mode 100644 index 0000000000000..2e5b2f2b6ac69 --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/basic_essentials_license/rule_management/configs/serverless.config.ts @@ -0,0 +1,15 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { createTestConfig } from '../../../../../config/serverless/config.base.essentials'; + +export default createTestConfig({ + testFiles: [require.resolve('..')], + junit: { + reportName: 'Detection Engine Serverless/ Rule management API Integration Tests', + }, +}); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/basic_essentials_license/rule_management/coverage_overview.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/basic_essentials_license/rule_management/coverage_overview.ts new file mode 100644 index 0000000000000..b22b76e4b8670 --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/basic_essentials_license/rule_management/coverage_overview.ts @@ -0,0 +1,670 @@ +/* + * Copyright 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 expect from '@kbn/expect'; + +import { + CoverageOverviewRuleActivity, + CoverageOverviewRuleSource, + RULE_MANAGEMENT_COVERAGE_OVERVIEW_URL, + ThreatArray, +} from '@kbn/security-solution-plugin/common/api/detection_engine'; +import { FtrProviderContext } from '../../../../ftr_provider_context'; +import { + createPrebuiltRuleAssetSavedObjects, + createRuleAssetSavedObject, + createRule, + deleteAllRules, + installPrebuiltRulesAndTimelines, + installPrebuiltRules, + getCustomQueryRuleParams, + createNonSecurityRule, +} from '../../utils'; +import { getCoverageOverview } from '../../utils/rules/get_coverage_overview'; + +export default ({ getService }: FtrProviderContext): void => { + const supertest = getService('supertest'); + const log = getService('log'); + const es = getService('es'); + + describe('coverage_overview', () => { + beforeEach(async () => { + await deleteAllRules(supertest, log); + }); + + // ESS only + describe('@ess specific tests', () => { + it('does NOT error when there exist some stack rules in addition to security detection rules', async () => { + await createNonSecurityRule(supertest); + + const rule1 = await createRule( + supertest, + log, + getCustomQueryRuleParams({ threat: generateThreatArray(1) }) + ); + + const body = await getCoverageOverview(supertest); + + expect(body).to.eql({ + coverage: { + T001: [rule1.id], + TA001: [rule1.id], + 'T001.001': [rule1.id], + }, + unmapped_rule_ids: [], + rules_data: { + [rule1.id]: { + activity: 'disabled', + name: 'Custom query rule', + }, + }, + }); + }); + }); + + // Both serverless and ESS + describe('@serverless @ess tests', () => { + describe('base cases', () => { + it('returns an empty response if there are no rules', async () => { + const body = await getCoverageOverview(supertest); + + expect(body).to.eql({ + coverage: {}, + unmapped_rule_ids: [], + rules_data: {}, + }); + }); + + it('returns response with a single rule mapped to MITRE categories', async () => { + const rule1 = await createRule( + supertest, + log, + getCustomQueryRuleParams({ threat: generateThreatArray(1) }) + ); + + const body = await getCoverageOverview(supertest); + + expect(body).to.eql({ + coverage: { + T001: [rule1.id], + TA001: [rule1.id], + 'T001.001': [rule1.id], + }, + unmapped_rule_ids: [], + rules_data: { + [rule1.id]: { + activity: 'disabled', + name: 'Custom query rule', + }, + }, + }); + }); + + it('returns response with an unmapped rule', async () => { + const rule1 = await createRule( + supertest, + log, + getCustomQueryRuleParams({ threat: undefined }) + ); + + const body = await getCoverageOverview(supertest); + + expect(body).to.eql({ + coverage: {}, + unmapped_rule_ids: [rule1.id], + rules_data: { + [rule1.id]: { + activity: 'disabled', + name: 'Custom query rule', + }, + }, + }); + }); + }); + + describe('with filters', () => { + describe('search_term', () => { + it('returns response filtered by tactic', async () => { + await createRule( + supertest, + log, + getCustomQueryRuleParams({ rule_id: 'rule-1', threat: generateThreatArray(1) }) + ); + const expectedRule = await createRule( + supertest, + log, + getCustomQueryRuleParams({ rule_id: 'rule-2', threat: generateThreatArray(2) }) + ); + + const body = await getCoverageOverview(supertest, { + search_term: 'TA002', + }); + + expect(body).to.eql({ + coverage: { + T002: [expectedRule.id], + TA002: [expectedRule.id], + 'T002.002': [expectedRule.id], + }, + unmapped_rule_ids: [], + rules_data: { + [expectedRule.id]: { + activity: 'disabled', + name: 'Custom query rule', + }, + }, + }); + }); + + it('returns response filtered by technique', async () => { + await createRule( + supertest, + log, + getCustomQueryRuleParams({ rule_id: 'rule-1', threat: generateThreatArray(1) }) + ); + const expectedRule = await createRule( + supertest, + log, + getCustomQueryRuleParams({ rule_id: 'rule-2', threat: generateThreatArray(2) }) + ); + + const body = await getCoverageOverview(supertest, { + search_term: 'T002', + }); + + expect(body).to.eql({ + coverage: { + T002: [expectedRule.id], + TA002: [expectedRule.id], + 'T002.002': [expectedRule.id], + }, + unmapped_rule_ids: [], + rules_data: { + [expectedRule.id]: { + activity: 'disabled', + name: 'Custom query rule', + }, + }, + }); + }); + + it('returns response filtered by subtechnique', async () => { + await createRule( + supertest, + log, + getCustomQueryRuleParams({ rule_id: 'rule-1', threat: generateThreatArray(1) }) + ); + const expectedRule = await createRule( + supertest, + log, + getCustomQueryRuleParams({ rule_id: 'rule-2', threat: generateThreatArray(2) }) + ); + + const body = await getCoverageOverview(supertest, { + search_term: 'T002.002', + }); + + expect(body).to.eql({ + coverage: { + T002: [expectedRule.id], + TA002: [expectedRule.id], + 'T002.002': [expectedRule.id], + }, + unmapped_rule_ids: [], + rules_data: { + [expectedRule.id]: { + activity: 'disabled', + name: 'Custom query rule', + }, + }, + }); + }); + + it('returns response filtered by rule name', async () => { + await createRule(supertest, log, getCustomQueryRuleParams({ rule_id: 'rule-1' })); + const expectedRule = await createRule( + supertest, + log, + getCustomQueryRuleParams({ rule_id: 'rule-2', name: 'rule-2' }) + ); + + const body = await getCoverageOverview(supertest, { + search_term: 'rule-2', + }); + + expect(body).to.eql({ + coverage: {}, + unmapped_rule_ids: [expectedRule.id], + rules_data: { + [expectedRule.id]: { + activity: 'disabled', + name: 'rule-2', + }, + }, + }); + }); + + it('returns response filtered by index pattern', async () => { + await createRule( + supertest, + log, + getCustomQueryRuleParams({ rule_id: 'rule-1', index: ['index-pattern-1'] }) + ); + const expectedRule = await createRule( + supertest, + log, + getCustomQueryRuleParams({ rule_id: 'rule-2', index: ['index-pattern-2'] }) + ); + + const body = await getCoverageOverview(supertest, { + search_term: 'index-pattern-2', + }); + + expect(body).to.eql({ + coverage: {}, + unmapped_rule_ids: [expectedRule.id], + rules_data: { + [expectedRule.id]: { + activity: 'disabled', + name: 'Custom query rule', + }, + }, + }); + }); + }); + + describe('activity', () => { + it('returns response filtered by disabled rules', async () => { + const expectedRule = await createRule( + supertest, + log, + getCustomQueryRuleParams({ rule_id: 'rule-1', threat: generateThreatArray(1) }) + ); + await createRule( + supertest, + log, + getCustomQueryRuleParams({ + rule_id: 'rule-2', + enabled: true, + threat: generateThreatArray(2), + }) + ); + + const body = await getCoverageOverview(supertest, { + activity: [CoverageOverviewRuleActivity.Disabled], + }); + + expect(body).to.eql({ + coverage: { + T001: [expectedRule.id], + TA001: [expectedRule.id], + 'T001.001': [expectedRule.id], + }, + unmapped_rule_ids: [], + rules_data: { + [expectedRule.id]: { + activity: 'disabled', + name: 'Custom query rule', + }, + }, + }); + }); + + it('returns response filtered by enabled rules', async () => { + await createRule( + supertest, + log, + getCustomQueryRuleParams({ rule_id: 'rule-1', threat: generateThreatArray(1) }) + ); + const expectedRule = await createRule( + supertest, + log, + getCustomQueryRuleParams({ + rule_id: 'rule-2', + enabled: true, + threat: generateThreatArray(2), + }) + ); + + const body = await getCoverageOverview(supertest, { + activity: [CoverageOverviewRuleActivity.Enabled], + }); + + expect(body).to.eql({ + coverage: { + T002: [expectedRule.id], + TA002: [expectedRule.id], + 'T002.002': [expectedRule.id], + }, + unmapped_rule_ids: [], + rules_data: { + [expectedRule.id]: { + activity: 'enabled', + name: 'Custom query rule', + }, + }, + }); + }); + + it('returns all rules if both enabled and disabled filters are specified in the request', async () => { + const expectedRule1 = await createRule( + supertest, + log, + getCustomQueryRuleParams({ + rule_id: 'rule-1', + enabled: false, + name: 'Disabled rule', + threat: generateThreatArray(1), + }) + ); + const expectedRule2 = await createRule( + supertest, + log, + getCustomQueryRuleParams({ + rule_id: 'rule-2', + enabled: true, + name: 'Enabled rule', + threat: generateThreatArray(2), + }) + ); + + const body = await getCoverageOverview(supertest, { + activity: [ + CoverageOverviewRuleActivity.Enabled, + CoverageOverviewRuleActivity.Disabled, + ], + }); + + expect(body).to.eql({ + coverage: { + T001: [expectedRule1.id], + TA001: [expectedRule1.id], + 'T001.001': [expectedRule1.id], + T002: [expectedRule2.id], + TA002: [expectedRule2.id], + 'T002.002': [expectedRule2.id], + }, + unmapped_rule_ids: [], + rules_data: { + [expectedRule1.id]: { + activity: 'disabled', + name: 'Disabled rule', + }, + [expectedRule2.id]: { + activity: 'enabled', + name: 'Enabled rule', + }, + }, + }); + }); + + it('returns all rules if neither enabled and disabled filters are specified in the request', async () => { + const expectedRule1 = await createRule( + supertest, + log, + getCustomQueryRuleParams({ + rule_id: 'rule-1', + enabled: false, + name: 'Disabled rule', + threat: generateThreatArray(1), + }) + ); + const expectedRule2 = await createRule( + supertest, + log, + getCustomQueryRuleParams({ + rule_id: 'rule-2', + enabled: true, + name: 'Enabled rule', + threat: generateThreatArray(2), + }) + ); + + const body = await getCoverageOverview(supertest); + + expect(body).to.eql({ + coverage: { + T001: [expectedRule1.id], + TA001: [expectedRule1.id], + 'T001.001': [expectedRule1.id], + T002: [expectedRule2.id], + TA002: [expectedRule2.id], + 'T002.002': [expectedRule2.id], + }, + unmapped_rule_ids: [], + rules_data: { + [expectedRule1.id]: { + activity: 'disabled', + name: 'Disabled rule', + }, + [expectedRule2.id]: { + activity: 'enabled', + name: 'Enabled rule', + }, + }, + }); + }); + }); + + describe('source', () => { + it('returns response filtered by custom rules', async () => { + await createPrebuiltRuleAssetSavedObjects(es, [ + createRuleAssetSavedObject({ + rule_id: 'prebuilt-rule-1', + threat: generateThreatArray(1), + }), + ]); + await installPrebuiltRulesAndTimelines(es, supertest); + + const expectedRule = await createRule( + supertest, + log, + getCustomQueryRuleParams({ rule_id: 'rule-1', threat: generateThreatArray(2) }) + ); + + const body = await getCoverageOverview(supertest, { + source: [CoverageOverviewRuleSource.Custom], + }); + + expect(body).to.eql({ + coverage: { + T002: [expectedRule.id], + TA002: [expectedRule.id], + 'T002.002': [expectedRule.id], + }, + unmapped_rule_ids: [], + rules_data: { + [expectedRule.id]: { + activity: 'disabled', + name: 'Custom query rule', + }, + }, + }); + }); + + it('returns response filtered by prebuilt rules', async () => { + await createPrebuiltRuleAssetSavedObjects(es, [ + createRuleAssetSavedObject({ + rule_id: 'prebuilt-rule-1', + threat: generateThreatArray(1), + }), + ]); + const { + results: { created }, + } = await installPrebuiltRules(es, supertest); + const expectedRule = created[0]; + + await createRule( + supertest, + log, + getCustomQueryRuleParams({ rule_id: 'rule-1', threat: generateThreatArray(2) }) + ); + + const body = await getCoverageOverview(supertest, { + source: [CoverageOverviewRuleSource.Prebuilt], + }); + + expect(body).to.eql({ + coverage: { + T001: [expectedRule.id], + TA001: [expectedRule.id], + 'T001.001': [expectedRule.id], + }, + unmapped_rule_ids: [], + rules_data: { + [expectedRule.id]: { + activity: 'disabled', + name: 'Query with a rule id', + }, + }, + }); + }); + + it('returns all rules if both custom and prebuilt filters are specified in the request', async () => { + await createPrebuiltRuleAssetSavedObjects(es, [ + createRuleAssetSavedObject({ + rule_id: 'prebuilt-rule-1', + threat: generateThreatArray(1), + }), + ]); + const { + results: { created }, + } = await installPrebuiltRules(es, supertest); + const expectedPrebuiltRule = created[0]; + + const expectedCustomRule = await createRule( + supertest, + log, + getCustomQueryRuleParams({ rule_id: 'rule-1', threat: generateThreatArray(2) }) + ); + + const body = await getCoverageOverview(supertest, { + source: [CoverageOverviewRuleSource.Prebuilt, CoverageOverviewRuleSource.Custom], + }); + + expect(body).to.eql({ + coverage: { + T001: [expectedPrebuiltRule.id], + TA001: [expectedPrebuiltRule.id], + 'T001.001': [expectedPrebuiltRule.id], + T002: [expectedCustomRule.id], + TA002: [expectedCustomRule.id], + 'T002.002': [expectedCustomRule.id], + }, + unmapped_rule_ids: [], + rules_data: { + [expectedPrebuiltRule.id]: { + activity: 'disabled', + name: 'Query with a rule id', + }, + [expectedCustomRule.id]: { + activity: 'disabled', + name: 'Custom query rule', + }, + }, + }); + }); + + it('returns all rules if neither custom and prebuilt filters are specified in the request', async () => { + await createPrebuiltRuleAssetSavedObjects(es, [ + createRuleAssetSavedObject({ + rule_id: 'prebuilt-rule-1', + threat: generateThreatArray(1), + }), + ]); + const { + results: { created }, + } = await installPrebuiltRules(es, supertest); + const expectedPrebuiltRule = created[0]; + + const expectedCustomRule = await createRule( + supertest, + log, + getCustomQueryRuleParams({ rule_id: 'rule-1', threat: generateThreatArray(2) }) + ); + + const body = await getCoverageOverview(supertest); + + expect(body).to.eql({ + coverage: { + T001: [expectedPrebuiltRule.id], + TA001: [expectedPrebuiltRule.id], + 'T001.001': [expectedPrebuiltRule.id], + T002: [expectedCustomRule.id], + TA002: [expectedCustomRule.id], + 'T002.002': [expectedCustomRule.id], + }, + unmapped_rule_ids: [], + rules_data: { + [expectedPrebuiltRule.id]: { + activity: 'disabled', + name: 'Query with a rule id', + }, + [expectedCustomRule.id]: { + activity: 'disabled', + name: 'Custom query rule', + }, + }, + }); + }); + }); + }); + + describe('error cases', async () => { + it('throws error when request body is not valid', async () => { + const { body } = await supertest + .post(RULE_MANAGEMENT_COVERAGE_OVERVIEW_URL) + .set('kbn-xsrf', 'true') + .set('elastic-api-version', '1') + .set('x-elastic-internal-origin', 'foo') + .send({ filter: { source: ['give me all the rules'] } }) + .expect(400); + + expect(body).to.eql({ + statusCode: 400, + error: 'Bad Request', + message: + '[request body]: Invalid value "give me all the rules" supplied to "filter,source"', + }); + }); + }); + }); + }); +}; + +function generateThreatArray(startIndex: number, count = 1): ThreatArray { + const result: ThreatArray = []; + + for (let i = 0; i < count; ++i) { + const indexName = (i + startIndex).toString().padStart(3, '0'); + + result.push({ + framework: 'MITRE ATT&CK', + tactic: { + id: `TA${indexName}`, + name: `Tactic ${indexName}`, + reference: `http://some-link-${indexName}`, + }, + technique: [ + { + id: `T${indexName}`, + name: `Technique ${indexName}`, + reference: `http://some-technique-link-${indexName}`, + subtechnique: [ + { + id: `T${indexName}.${indexName}`, + name: `Subtechnique ${indexName}`, + reference: `http://some-sub-technique-link-${indexName}`, + }, + ], + }, + ], + }); + } + + return result; +} diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/basic_essentials_license/rule_management/index.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/basic_essentials_license/rule_management/index.ts new file mode 100644 index 0000000000000..84d79ee1dd675 --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/basic_essentials_license/rule_management/index.ts @@ -0,0 +1,13 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { FtrProviderContext } from '../../../../ftr_provider_context'; + +export default function ({ loadTestFile }: FtrProviderContext) { + describe('Rule management API', function () { + loadTestFile(require.resolve('./coverage_overview')); + }); +} diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/create_non_security_rule.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/create_non_security_rule.ts index 89bb2bbea5725..09bc0f9b81a6d 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/create_non_security_rule.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/create_non_security_rule.ts @@ -18,6 +18,7 @@ const SIMPLE_APM_RULE_DATA = { windowSize: 30, windowUnit: 'm', anomalySeverityType: 'critical', + anomalyDetectorTypes: ['txLatency'], environment: 'ENVIRONMENT_ALL', }, schedule: { diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/get_coverage_overview.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/get_coverage_overview.ts new file mode 100644 index 0000000000000..f93a29b0ec149 --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/get_coverage_overview.ts @@ -0,0 +1,28 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import type SuperTest from 'supertest'; + +import { + CoverageOverviewFilter, + CoverageOverviewResponse, + RULE_MANAGEMENT_COVERAGE_OVERVIEW_URL, +} from '@kbn/security-solution-plugin/common/api/detection_engine'; + +export const getCoverageOverview = async ( + supertest: SuperTest.SuperTest, + filter?: CoverageOverviewFilter +): Promise => { + const response = await supertest + .post(RULE_MANAGEMENT_COVERAGE_OVERVIEW_URL) + .set('kbn-xsrf', 'true') + .set('elastic-api-version', '1') + .set('x-elastic-internal-origin', 'foo') + .send({ filter }) + .expect(200); + + return response.body; +}; diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/coverage_overview/coverage_overview.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/coverage_overview/coverage_overview.cy.ts new file mode 100644 index 0000000000000..6a52134d4d738 --- /dev/null +++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/coverage_overview/coverage_overview.cy.ts @@ -0,0 +1,439 @@ +/* + * Copyright 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 { + getDuplicateTechniqueThreatData, + getMockThreatData, +} from '@kbn/security-solution-plugin/public/detections/mitre/mitre_tactics_techniques'; +import { Threat } from '@kbn/securitysolution-io-ts-alerting-types'; +import { + COVERAGE_OVERVIEW_ENABLE_ALL_DISABLED_BUTTON, + COVERAGE_OVERVIEW_POPOVER_DISABLED_RULES, + COVERAGE_OVERVIEW_POPOVER_ENABLED_RULES, + COVERAGE_OVERVIEW_TACTIC_DISABLED_STATS, + COVERAGE_OVERVIEW_TACTIC_ENABLED_STATS, + COVERAGE_OVERVIEW_TACTIC_PANEL, +} from '../../../../screens/rules_coverage_overview'; +import { createRule } from '../../../../tasks/api_calls/rules'; +import { visit } from '../../../../tasks/navigation'; +import { RULES_COVERAGE_OVERVIEW_URL } from '../../../../urls/rules_management'; +import { createRuleAssetSavedObject } from '../../../../helpers/rules'; +import { getNewRule } from '../../../../objects/rule'; +import { + createAndInstallMockedPrebuiltRules, + preventPrebuiltRulesPackageInstallation, +} from '../../../../tasks/api_calls/prebuilt_rules'; +import { + deleteAlertsAndRules, + deletePrebuiltRulesAssets, +} from '../../../../tasks/api_calls/common'; +import { login } from '../../../../tasks/login'; +import { + enableAllDisabledRules, + filterCoverageOverviewBySearchBar, + openTechniquePanelByName, + openTechniquePanelByNameAndTacticId, + selectCoverageOverviewActivityFilterOption, + selectCoverageOverviewSourceFilterOption, +} from '../../../../tasks/rules_coverage_overview'; + +// Mitre data used in base case tests +const EnabledPrebuiltRuleMitreData = getMockThreatData()[0]; +const DisabledPrebuiltRuleMitreData = getMockThreatData()[1]; +const EnabledCustomRuleMitreData = getMockThreatData()[2]; +const DisabledCustomRuleMitreData = getMockThreatData()[3]; + +// Mitre data used for duplicate technique tests +const DuplicateTechniqueMitreData1 = getDuplicateTechniqueThreatData()[1]; +const DuplicateTechniqueMitreData2 = getDuplicateTechniqueThreatData()[0]; + +const MockEnabledPrebuiltRuleThreat: Threat = { + framework: 'MITRE ATT&CK', + tactic: { + name: EnabledPrebuiltRuleMitreData.tactic.name, + id: EnabledPrebuiltRuleMitreData.tactic.id, + reference: EnabledPrebuiltRuleMitreData.tactic.reference, + }, + technique: [ + { + id: EnabledPrebuiltRuleMitreData.technique.id, + reference: EnabledPrebuiltRuleMitreData.technique.reference, + name: EnabledPrebuiltRuleMitreData.technique.name, + subtechnique: [ + { + id: EnabledPrebuiltRuleMitreData.subtechnique.id, + name: EnabledPrebuiltRuleMitreData.subtechnique.name, + reference: EnabledPrebuiltRuleMitreData.subtechnique.reference, + }, + ], + }, + { + name: EnabledPrebuiltRuleMitreData.technique.name, + id: EnabledPrebuiltRuleMitreData.technique.id, + reference: EnabledPrebuiltRuleMitreData.technique.reference, + subtechnique: [], + }, + ], +}; + +const MockDisabledPrebuiltRuleThreat: Threat = { + framework: 'MITRE ATT&CK', + tactic: { + name: DisabledPrebuiltRuleMitreData.tactic.name, + id: DisabledPrebuiltRuleMitreData.tactic.id, + reference: DisabledPrebuiltRuleMitreData.tactic.reference, + }, + technique: [ + { + id: DisabledPrebuiltRuleMitreData.technique.id, + reference: DisabledPrebuiltRuleMitreData.technique.reference, + name: DisabledPrebuiltRuleMitreData.technique.name, + subtechnique: [ + { + id: DisabledPrebuiltRuleMitreData.subtechnique.id, + name: DisabledPrebuiltRuleMitreData.subtechnique.name, + reference: DisabledPrebuiltRuleMitreData.subtechnique.reference, + }, + ], + }, + ], +}; + +const MockEnabledCustomRuleThreat: Threat = { + framework: 'MITRE ATT&CK', + tactic: { + name: EnabledCustomRuleMitreData.tactic.name, + id: EnabledCustomRuleMitreData.tactic.id, + reference: EnabledCustomRuleMitreData.tactic.reference, + }, + technique: [ + { + id: EnabledCustomRuleMitreData.technique.id, + reference: EnabledCustomRuleMitreData.technique.reference, + name: EnabledCustomRuleMitreData.technique.name, + subtechnique: [ + { + id: EnabledCustomRuleMitreData.subtechnique.id, + name: EnabledCustomRuleMitreData.subtechnique.name, + reference: EnabledCustomRuleMitreData.subtechnique.reference, + }, + ], + }, + ], +}; + +const MockDisabledCustomRuleThreat: Threat = { + framework: 'MITRE ATT&CK', + tactic: { + name: DisabledCustomRuleMitreData.tactic.name, + id: DisabledCustomRuleMitreData.tactic.id, + reference: DisabledCustomRuleMitreData.tactic.reference, + }, + technique: [ + { + id: DisabledCustomRuleMitreData.technique.id, + reference: DisabledCustomRuleMitreData.technique.reference, + name: DisabledCustomRuleMitreData.technique.name, + }, + ], +}; + +const MockCustomRuleDuplicateTechniqueThreat1: Threat = { + framework: 'MITRE ATT&CK', + tactic: { + name: DuplicateTechniqueMitreData1.tactic.name, + id: DuplicateTechniqueMitreData1.tactic.id, + reference: DuplicateTechniqueMitreData1.tactic.reference, + }, + technique: [ + { + id: DuplicateTechniqueMitreData1.technique.id, + reference: DuplicateTechniqueMitreData1.technique.reference, + name: DuplicateTechniqueMitreData1.technique.name, + }, + ], +}; + +const MockCustomRuleDuplicateTechniqueThreat2: Threat = { + framework: 'MITRE ATT&CK', + tactic: { + name: DuplicateTechniqueMitreData2.tactic.name, + id: DuplicateTechniqueMitreData2.tactic.id, + reference: DuplicateTechniqueMitreData2.tactic.reference, + }, + technique: [ + { + id: DuplicateTechniqueMitreData2.technique.id, + reference: DuplicateTechniqueMitreData2.technique.reference, + name: DuplicateTechniqueMitreData2.technique.name, + }, + ], +}; + +const prebuiltRules = [ + createRuleAssetSavedObject({ + name: `Enabled prebuilt rule`, + rule_id: `enabled_prebuilt_rule`, + enabled: true, + threat: [MockEnabledPrebuiltRuleThreat], + }), + createRuleAssetSavedObject({ + name: `Disabled prebuilt rule`, + rule_id: `disabled_prebuilt_rule`, + enabled: false, + threat: [MockDisabledPrebuiltRuleThreat], + }), +]; + +describe('Coverage overview', { tags: ['@ess', '@serverless'] }, () => { + describe('base cases', () => { + beforeEach(() => { + login(); + deleteAlertsAndRules(); + deletePrebuiltRulesAssets(); + preventPrebuiltRulesPackageInstallation(); + createAndInstallMockedPrebuiltRules(prebuiltRules); + createRule( + getNewRule({ + rule_id: 'enabled_custom_rule', + enabled: true, + name: 'Enabled custom rule', + threat: [MockEnabledCustomRuleThreat], + }) + ); + createRule( + getNewRule({ + rule_id: 'disabled_custom_rule', + name: 'Disabled custom rule', + enabled: false, + threat: [MockDisabledCustomRuleThreat], + }) + ); + visit(RULES_COVERAGE_OVERVIEW_URL); + }); + + it('technique panel renders custom and prebuilt rule data on page load', () => { + openTechniquePanelByName(EnabledPrebuiltRuleMitreData.technique.name); + cy.get(COVERAGE_OVERVIEW_POPOVER_ENABLED_RULES).contains('Enabled prebuilt rule'); + cy.get(COVERAGE_OVERVIEW_POPOVER_ENABLED_RULES) + .contains('Enabled custom rule') + .should('not.exist'); + cy.get(COVERAGE_OVERVIEW_POPOVER_DISABLED_RULES) + .contains('Disabled prebuilt rule') + .should('not.exist'); + cy.get(COVERAGE_OVERVIEW_POPOVER_DISABLED_RULES) + .contains('Disabled custom rule') + .should('not.exist'); + cy.get(COVERAGE_OVERVIEW_ENABLE_ALL_DISABLED_BUTTON).should('be.disabled'); + }); + + describe('filtering tests', () => { + it('filters for all data', () => { + selectCoverageOverviewActivityFilterOption('Disabled rules'); // Activates disabled rules filter as it's off by default on page load + + openTechniquePanelByName(EnabledPrebuiltRuleMitreData.technique.name); + cy.get(COVERAGE_OVERVIEW_POPOVER_ENABLED_RULES).contains('Enabled prebuilt rule'); + + openTechniquePanelByName(DisabledPrebuiltRuleMitreData.technique.name); + cy.get(COVERAGE_OVERVIEW_POPOVER_DISABLED_RULES).contains('Disabled prebuilt rule'); + + openTechniquePanelByName(EnabledCustomRuleMitreData.technique.name); + cy.get(COVERAGE_OVERVIEW_POPOVER_ENABLED_RULES).contains('Enabled custom rule'); + + openTechniquePanelByName(DisabledCustomRuleMitreData.technique.name); + cy.get(COVERAGE_OVERVIEW_POPOVER_DISABLED_RULES).contains('Disabled custom rule'); + }); + + it('filters for disabled and prebuilt rules', () => { + selectCoverageOverviewActivityFilterOption('Enabled rules'); // Disables default filter + selectCoverageOverviewActivityFilterOption('Disabled rules'); // Activates disabled rules filter as it's off by default on page load + selectCoverageOverviewSourceFilterOption('Custom rules'); // Disables default filter + + openTechniquePanelByName(EnabledPrebuiltRuleMitreData.technique.name); + cy.get(COVERAGE_OVERVIEW_POPOVER_ENABLED_RULES) + .contains('Enabled prebuilt rule') + .should('not.exist'); + + openTechniquePanelByName(DisabledPrebuiltRuleMitreData.technique.name); + cy.get(COVERAGE_OVERVIEW_POPOVER_DISABLED_RULES).contains('Disabled prebuilt rule'); + + openTechniquePanelByName(EnabledCustomRuleMitreData.technique.name); + cy.get(COVERAGE_OVERVIEW_POPOVER_ENABLED_RULES) + .contains('Enabled custom rule') + .should('not.exist'); + + openTechniquePanelByName(DisabledCustomRuleMitreData.technique.name); + cy.get(COVERAGE_OVERVIEW_POPOVER_DISABLED_RULES) + .contains('Disabled custom rule') + .should('not.exist'); + }); + + it('filters for only prebuilt rules', () => { + selectCoverageOverviewActivityFilterOption('Disabled rules'); // Activates disabled rules filter as it's off by default on page load + selectCoverageOverviewSourceFilterOption('Custom rules'); // Disables default filter + + openTechniquePanelByName(EnabledPrebuiltRuleMitreData.technique.name); + cy.get(COVERAGE_OVERVIEW_POPOVER_ENABLED_RULES).contains('Enabled prebuilt rule'); + + openTechniquePanelByName(DisabledPrebuiltRuleMitreData.technique.name); + cy.get(COVERAGE_OVERVIEW_POPOVER_DISABLED_RULES).contains('Disabled prebuilt rule'); + + openTechniquePanelByName(EnabledCustomRuleMitreData.technique.name); + cy.get(COVERAGE_OVERVIEW_POPOVER_ENABLED_RULES) + .contains('Enabled custom rule') + .should('not.exist'); + + openTechniquePanelByName(DisabledCustomRuleMitreData.technique.name); + cy.get(COVERAGE_OVERVIEW_POPOVER_DISABLED_RULES) + .contains('Disabled custom rule') + .should('not.exist'); + }); + + it('filters for only custom rules', () => { + selectCoverageOverviewActivityFilterOption('Disabled rules'); // Activates disabled rules filter as it's off by default on page load + selectCoverageOverviewSourceFilterOption('Elastic rules'); // Disables default filter + + openTechniquePanelByName(EnabledPrebuiltRuleMitreData.technique.name); + cy.get(COVERAGE_OVERVIEW_POPOVER_ENABLED_RULES) + .contains('Enabled prebuilt rule') + .should('not.exist'); + + openTechniquePanelByName(DisabledPrebuiltRuleMitreData.technique.name); + cy.get(COVERAGE_OVERVIEW_POPOVER_DISABLED_RULES) + .contains('Disabled prebuilt rule') + .should('not.exist'); + + openTechniquePanelByName(EnabledCustomRuleMitreData.technique.name); + cy.get(COVERAGE_OVERVIEW_POPOVER_ENABLED_RULES).contains('Enabled custom rule'); + + openTechniquePanelByName(DisabledCustomRuleMitreData.technique.name); + cy.get(COVERAGE_OVERVIEW_POPOVER_DISABLED_RULES).contains('Disabled custom rule'); + }); + + it('filters for search term', () => { + filterCoverageOverviewBySearchBar('Enabled custom rule'); // Disables default filter + + openTechniquePanelByName(EnabledPrebuiltRuleMitreData.technique.name); + cy.get(COVERAGE_OVERVIEW_POPOVER_ENABLED_RULES) + .contains('Enabled prebuilt rule') + .should('not.exist'); + + openTechniquePanelByName(DisabledPrebuiltRuleMitreData.technique.name); + cy.get(COVERAGE_OVERVIEW_POPOVER_DISABLED_RULES) + .contains('Disabled prebuilt rule') + .should('not.exist'); + + openTechniquePanelByName(EnabledCustomRuleMitreData.technique.name); + cy.get(COVERAGE_OVERVIEW_POPOVER_ENABLED_RULES).contains('Enabled custom rule'); + + openTechniquePanelByName(DisabledCustomRuleMitreData.technique.name); + cy.get(COVERAGE_OVERVIEW_POPOVER_DISABLED_RULES) + .contains('Disabled custom rule') + .should('not.exist'); + }); + }); + + it('enables all disabled rules', () => { + selectCoverageOverviewActivityFilterOption('Disabled rules'); // Activates disabled rules filter as it's off by default on page load + openTechniquePanelByName(DisabledPrebuiltRuleMitreData.technique.name); + enableAllDisabledRules(); + + // Should now render all rules in "enabled" section + openTechniquePanelByName(DisabledPrebuiltRuleMitreData.technique.name); + cy.get(COVERAGE_OVERVIEW_POPOVER_ENABLED_RULES).contains('Disabled prebuilt rule'); + + // Shouldn't render the rules in "disabled" section + cy.get(COVERAGE_OVERVIEW_POPOVER_DISABLED_RULES) + .contains('Disabled prebuilt rule') + .should('not.exist'); + cy.get(COVERAGE_OVERVIEW_ENABLE_ALL_DISABLED_BUTTON).should('be.disabled'); + }); + }); + + describe('with rules that have identical mitre techniques that belong to multiple tactics', () => { + const SharedTechniqueName = DuplicateTechniqueMitreData1.technique.name; + const TacticOfRule1 = DuplicateTechniqueMitreData1.tactic; + const TacticOfRule2 = DuplicateTechniqueMitreData2.tactic; + + beforeEach(() => { + login(); + deleteAlertsAndRules(); + deletePrebuiltRulesAssets(); + createRule( + getNewRule({ + rule_id: 'duplicate_technique_rule_1', + enabled: true, + name: 'Rule under Persistence tactic', + threat: [MockCustomRuleDuplicateTechniqueThreat1], + }) + ); + createRule( + getNewRule({ + rule_id: 'duplicate_technique_rule_2', + name: 'Rule under Privilege Escalation tactic', + enabled: false, + threat: [MockCustomRuleDuplicateTechniqueThreat2], + }) + ); + visit(RULES_COVERAGE_OVERVIEW_URL); + }); + + it('technique panels render unique rule data', () => { + // Tests to make sure each rule only exists in the specific technique and tactic that's assigned to it + + selectCoverageOverviewActivityFilterOption('Disabled rules'); // Activates disabled rules filter as it's off by default on page load + + // Open duplicated technique panel under Persistence tactic + openTechniquePanelByNameAndTacticId(SharedTechniqueName, TacticOfRule1.id); + + // Only rule 1 data is present + cy.get(COVERAGE_OVERVIEW_POPOVER_ENABLED_RULES).contains('Rule under Persistence tactic'); + cy.get(COVERAGE_OVERVIEW_POPOVER_DISABLED_RULES) + .contains('Rule under Privilege Escalation tactic') + .should('not.exist'); + + // Open duplicated technique panel under Privilege Escalation tactic + openTechniquePanelByNameAndTacticId(SharedTechniqueName, TacticOfRule2.id); + + // Only rule 2 data is present + cy.get(COVERAGE_OVERVIEW_POPOVER_ENABLED_RULES) + .contains('Rule under Persistence tactic') + .should('not.exist'); + cy.get(COVERAGE_OVERVIEW_POPOVER_DISABLED_RULES).contains( + 'Rule under Privilege Escalation tactic' + ); + }); + + it('tactic panels render correct rule stats', () => { + selectCoverageOverviewActivityFilterOption('Disabled rules'); // Activates disabled rules filter as it's off by default on page load + + // Validate rule count stats for the Persistence tactic only show stats based on its own technique + // Enabled rule count + cy.get(COVERAGE_OVERVIEW_TACTIC_PANEL) + .contains(TacticOfRule1.name) + .get(COVERAGE_OVERVIEW_TACTIC_ENABLED_STATS) + .contains('0'); + // Disabled rule count + cy.get(COVERAGE_OVERVIEW_TACTIC_PANEL) + .contains(TacticOfRule1.name) + .get(COVERAGE_OVERVIEW_TACTIC_DISABLED_STATS) + .contains('1'); + + // Validate rule count stats for the Privilege Escalation tactic only show stats based on its own technique + // Enabled rule count + cy.get(COVERAGE_OVERVIEW_TACTIC_PANEL) + .contains(TacticOfRule2.name) + .get(COVERAGE_OVERVIEW_TACTIC_ENABLED_STATS) + .contains('1'); + // Disabled rule count + cy.get(COVERAGE_OVERVIEW_TACTIC_PANEL) + .contains(TacticOfRule2.name) + .get(COVERAGE_OVERVIEW_TACTIC_DISABLED_STATS) + .contains('0'); + }); + }); +}); diff --git a/x-pack/test/security_solution_cypress/cypress/objects/rule.ts b/x-pack/test/security_solution_cypress/cypress/objects/rule.ts index 681eff67d071e..5b20fe24b6c7a 100644 --- a/x-pack/test/security_solution_cypress/cypress/objects/rule.ts +++ b/x-pack/test/security_solution_cypress/cypress/objects/rule.ts @@ -39,27 +39,27 @@ export const getThreatIndexPatterns = (): string[] => ['logs-ti_*']; const getMitre1 = (): Threat => ({ framework: 'MITRE ATT&CK', tactic: { - name: getMockThreatData().tactic.name, - id: getMockThreatData().tactic.id, - reference: getMockThreatData().tactic.reference, + name: getMockThreatData()[0].tactic.name, + id: getMockThreatData()[0].tactic.id, + reference: getMockThreatData()[0].tactic.reference, }, technique: [ { - id: getMockThreatData().technique.id, - reference: getMockThreatData().technique.reference, - name: getMockThreatData().technique.name, + id: getMockThreatData()[0].technique.id, + reference: getMockThreatData()[0].technique.reference, + name: getMockThreatData()[0].technique.name, subtechnique: [ { - id: getMockThreatData().subtechnique.id, - name: getMockThreatData().subtechnique.name, - reference: getMockThreatData().subtechnique.reference, + id: getMockThreatData()[0].subtechnique.id, + name: getMockThreatData()[0].subtechnique.name, + reference: getMockThreatData()[0].subtechnique.reference, }, ], }, { - name: getMockThreatData().technique.name, - id: getMockThreatData().technique.id, - reference: getMockThreatData().technique.reference, + name: getMockThreatData()[0].technique.name, + id: getMockThreatData()[0].technique.id, + reference: getMockThreatData()[0].technique.reference, subtechnique: [], }, ], @@ -68,20 +68,20 @@ const getMitre1 = (): Threat => ({ const getMitre2 = (): Threat => ({ framework: 'MITRE ATT&CK', tactic: { - name: getMockThreatData().tactic.name, - id: getMockThreatData().tactic.id, - reference: getMockThreatData().tactic.reference, + name: getMockThreatData()[1].tactic.name, + id: getMockThreatData()[1].tactic.id, + reference: getMockThreatData()[1].tactic.reference, }, technique: [ { - id: getMockThreatData().technique.id, - reference: getMockThreatData().technique.reference, - name: getMockThreatData().technique.name, + id: getMockThreatData()[1].technique.id, + reference: getMockThreatData()[1].technique.reference, + name: getMockThreatData()[1].technique.name, subtechnique: [ { - id: getMockThreatData().subtechnique.id, - name: getMockThreatData().subtechnique.name, - reference: getMockThreatData().subtechnique.reference, + id: getMockThreatData()[1].subtechnique.id, + name: getMockThreatData()[1].subtechnique.name, + reference: getMockThreatData()[1].subtechnique.reference, }, ], }, diff --git a/x-pack/test/security_solution_cypress/cypress/screens/rules_coverage_overview.ts b/x-pack/test/security_solution_cypress/cypress/screens/rules_coverage_overview.ts new file mode 100644 index 0000000000000..bf696867e61cf --- /dev/null +++ b/x-pack/test/security_solution_cypress/cypress/screens/rules_coverage_overview.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. + */ + +export const COVERAGE_OVERVIEW_TECHNIQUE_PANEL = + '[data-test-subj="coverageOverviewTechniquePanel"]'; + +export const COVERAGE_OVERVIEW_TECHNIQUE_PANEL_IN_TACTIC_GROUP = (id: string) => + `[data-test-subj="coverageOverviewTacticGroup-${id}"] [data-test-subj="coverageOverviewTechniquePanel"]`; + +export const COVERAGE_OVERVIEW_POPOVER_ENABLED_RULES = + '[data-test-subj="coverageOverviewEnabledRulesList"]'; + +export const COVERAGE_OVERVIEW_POPOVER_DISABLED_RULES = + '[data-test-subj="coverageOverviewDisabledRulesList"]'; + +export const COVERAGE_OVERVIEW_ENABLE_ALL_DISABLED_BUTTON = + '[data-test-subj="enableAllDisabledButton"]'; + +export const COVERAGE_OVERVIEW_ACTIVITY_FILTER_BUTTON = + '[data-test-subj="coverageOverviewRuleActivityFilterButton"]'; + +export const COVERAGE_OVERVIEW_SOURCE_FILTER_BUTTON = + '[data-test-subj="coverageOverviewRuleSourceFilterButton"]'; + +export const COVERAGE_OVERVIEW_FILTER_LIST = '[data-test-subj="coverageOverviewFilterList"]'; + +export const COVERAGE_OVERVIEW_SEARCH_BAR = '[data-test-subj="coverageOverviewFilterSearchBar"]'; + +export const COVERAGE_OVERVIEW_TACTIC_PANEL = '[data-test-subj="coverageOverviewTacticPanel"]'; + +export const COVERAGE_OVERVIEW_TACTIC_ENABLED_STATS = + '[data-test-subj="ruleStatsEnabledRulesCount"]'; + +export const COVERAGE_OVERVIEW_TACTIC_DISABLED_STATS = + '[data-test-subj="ruleStatsDisabledRulesCount"]'; diff --git a/x-pack/test/security_solution_cypress/cypress/tasks/rules_coverage_overview.ts b/x-pack/test/security_solution_cypress/cypress/tasks/rules_coverage_overview.ts new file mode 100644 index 0000000000000..5f8f18bb8a36b --- /dev/null +++ b/x-pack/test/security_solution_cypress/cypress/tasks/rules_coverage_overview.ts @@ -0,0 +1,51 @@ +/* + * Copyright 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 { + COVERAGE_OVERVIEW_ACTIVITY_FILTER_BUTTON, + COVERAGE_OVERVIEW_ENABLE_ALL_DISABLED_BUTTON, + COVERAGE_OVERVIEW_FILTER_LIST, + COVERAGE_OVERVIEW_SEARCH_BAR, + COVERAGE_OVERVIEW_SOURCE_FILTER_BUTTON, + COVERAGE_OVERVIEW_TECHNIQUE_PANEL_IN_TACTIC_GROUP, + COVERAGE_OVERVIEW_TECHNIQUE_PANEL, +} from '../screens/rules_coverage_overview'; +import { LOADING_INDICATOR } from '../screens/security_header'; + +export const openTechniquePanelByName = (label: string) => { + cy.get(COVERAGE_OVERVIEW_TECHNIQUE_PANEL).contains(label).click(); +}; + +export const openTechniquePanelByNameAndTacticId = (label: string, tacticId: string) => { + cy.get(COVERAGE_OVERVIEW_TECHNIQUE_PANEL_IN_TACTIC_GROUP(tacticId)).contains(label).click(); +}; + +export const selectCoverageOverviewActivityFilterOption = (option: string) => { + cy.get(COVERAGE_OVERVIEW_ACTIVITY_FILTER_BUTTON).click(); // open filter popover + cy.get(COVERAGE_OVERVIEW_FILTER_LIST).contains(option).click(); + cy.get(LOADING_INDICATOR).should('not.exist'); + cy.get(COVERAGE_OVERVIEW_ACTIVITY_FILTER_BUTTON).click(); // close filter popover +}; + +export const selectCoverageOverviewSourceFilterOption = (option: string) => { + cy.get(COVERAGE_OVERVIEW_SOURCE_FILTER_BUTTON).click(); // open filter popover + cy.get(COVERAGE_OVERVIEW_FILTER_LIST).contains(option).click(); + cy.get(LOADING_INDICATOR).should('not.exist'); + cy.get(COVERAGE_OVERVIEW_SOURCE_FILTER_BUTTON).click(); // close filter popover +}; + +export const filterCoverageOverviewBySearchBar = (searchTerm: string) => { + cy.get(COVERAGE_OVERVIEW_SEARCH_BAR).type(`${searchTerm}`); + cy.get(COVERAGE_OVERVIEW_SEARCH_BAR).focus(); + cy.get(COVERAGE_OVERVIEW_SEARCH_BAR).realType('{enter}'); +}; + +export const enableAllDisabledRules = () => { + cy.get(COVERAGE_OVERVIEW_ENABLE_ALL_DISABLED_BUTTON).click(); + cy.get(COVERAGE_OVERVIEW_ENABLE_ALL_DISABLED_BUTTON).should('not.exist'); + cy.get(LOADING_INDICATOR).should('not.exist'); +}; diff --git a/x-pack/test/security_solution_cypress/cypress/urls/rules_management.ts b/x-pack/test/security_solution_cypress/cypress/urls/rules_management.ts index 6b0f4bc231247..03af67cfe79db 100644 --- a/x-pack/test/security_solution_cypress/cypress/urls/rules_management.ts +++ b/x-pack/test/security_solution_cypress/cypress/urls/rules_management.ts @@ -7,3 +7,4 @@ export const RULES_MANAGEMENT_URL = '/app/security/rules/management'; export const RULES_MONITORING_URL = '/app/security/rules/monitoring'; +export const RULES_COVERAGE_OVERVIEW_URL = '/app/security/rules_coverage_overview'; From affa373d507a2c448658dadda36109418c903a45 Mon Sep 17 00:00:00 2001 From: Nick Peihl Date: Tue, 9 Jan 2024 14:16:47 -0500 Subject: [PATCH 09/20] [Controls] Fix range slider control diffing (#174394) Fixes https://github.com/elastic/kibana/issues/174396 ## Summary Fixes bug where certain changes to range slider controls would not trigger unsaved changes. Before: https://github.com/elastic/kibana/assets/1638483/e7434a96-f79e-4a86-b538-5ffddb6c9bd9 After: https://github.com/elastic/kibana/assets/1638483/e2f98df4-4eee-459a-aa99-c1296ed879f7 --- .../common/control_group/control_group_panel_diff_system.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/plugins/controls/common/control_group/control_group_panel_diff_system.ts b/src/plugins/controls/common/control_group/control_group_panel_diff_system.ts index 54d61a1b6c3b8..c07713dd32280 100644 --- a/src/plugins/controls/common/control_group/control_group_panel_diff_system.ts +++ b/src/plugins/controls/common/control_group/control_group_panel_diff_system.ts @@ -34,11 +34,11 @@ export const ControlPanelDiffSystems: { return false; } - const { value: valueA = ['', ''] }: Partial = + const { value: valueA = ['', ''], ...inputA }: Partial = initialInput.explicitInput; - const { value: valueB = ['', ''] }: Partial = + const { value: valueB = ['', ''], ...inputB }: Partial = newInput.explicitInput; - return isEqual(valueA, valueB); + return isEqual(valueA, valueB) && deepEqual(inputA, inputB); }, }, [OPTIONS_LIST_CONTROL]: { From f567016b767c5ad911f2ce03f43bd268c12dffba Mon Sep 17 00:00:00 2001 From: Lisa Cawley Date: Tue, 9 Jan 2024 11:48:53 -0800 Subject: [PATCH 10/20] [DOCS] Copy file hash in cases (#174414) --- docs/management/cases/images/cases-files.png | Bin 39734 -> 109354 bytes docs/management/cases/manage-cases.asciidoc | 3 +++ 2 files changed, 3 insertions(+) diff --git a/docs/management/cases/images/cases-files.png b/docs/management/cases/images/cases-files.png index 03636626911ad2790df2f0b40a6202a9779fdc0a..c7eaf32bd15385986dd0f2bcd33c1b169ca32cb5 100644 GIT binary patch literal 109354 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%0Adr4 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 KE`0jJ@Bad?-Bk?$ literal 39734 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 diff --git a/docs/management/cases/manage-cases.asciidoc b/docs/management/cases/manage-cases.asciidoc index a531299b95797..50c2bc0ff5ff5 100644 --- a/docs/management/cases/manage-cases.asciidoc +++ b/docs/management/cases/manage-cases.asciidoc @@ -123,6 +123,9 @@ image::images/cases-files.png[A list of files attached to a case] The acceptable file types and sizes are affected by your <>. +To download or delete the file or copy the file hash to your clipboard, open the action menu (…). +The available hash functions are MD5, SHA-1, and SHA-256. + When you upload a file, a comment is added to the case activity log. To view images, click their name in the activity or file list. From 66aa37444a16c5d40523b9cae3267983dd20a9db Mon Sep 17 00:00:00 2001 From: Nicolas Chaulet Date: Tue, 9 Jan 2024 15:05:01 -0500 Subject: [PATCH 11/20] [Fleet] Fix package edit redirect (#174531) --- .../package_policies/package_policies_table.tsx | 1 + .../sections/epm/screens/policy/index.tsx | 17 +++++++++++++++-- .../components/package_policy_actions_menu.tsx | 6 ++++-- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/details_page/components/package_policies/package_policies_table.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/details_page/components/package_policies/package_policies_table.tsx index 6f835651e6dbf..934fee64b4043 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/details_page/components/package_policies/package_policies_table.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/details_page/components/package_policies/package_policies_table.tsx @@ -238,6 +238,7 @@ export const PackagePoliciesTable: React.FunctionComponent = ({ return canWriteIntegrationPolicies ? ( { @@ -17,6 +18,7 @@ export const Policy = memo(() => { params: { packagePolicyId }, } = useRouteMatch<{ packagePolicyId: string }>(); + const { search } = useLocation(); const { data: packagePolicyData } = useGetOnePackagePolicyQuery(packagePolicyId); const extensionView = useUIExtension( @@ -24,10 +26,21 @@ export const Policy = memo(() => { 'package-policy-edit' ); + const qs = new URLSearchParams(search); + const fromQs = qs.get('from'); + + let from: EditPackagePolicyFrom | undefined; + + if (fromQs && fromQs === 'fleet-policy-list') { + from = 'edit'; + } else { + from = 'package-edit'; + } + return ( ); diff --git a/x-pack/plugins/fleet/public/components/package_policy_actions_menu.tsx b/x-pack/plugins/fleet/public/components/package_policy_actions_menu.tsx index 24525ce709efd..e2f581d38d1db 100644 --- a/x-pack/plugins/fleet/public/components/package_policy_actions_menu.tsx +++ b/x-pack/plugins/fleet/public/components/package_policy_actions_menu.tsx @@ -24,12 +24,14 @@ export const PackagePolicyActionsMenu: React.FunctionComponent<{ showAddAgent?: boolean; defaultIsOpen?: boolean; upgradePackagePolicyHref?: string; + from?: 'fleet-policy-list' | undefined; }> = ({ agentPolicy, packagePolicy, showAddAgent, upgradePackagePolicyHref, defaultIsOpen = false, + from, }) => { const [isEnrollmentFlyoutOpen, setIsEnrollmentFlyoutOpen] = useState(false); const { getHref } = useLink(); @@ -80,9 +82,9 @@ export const PackagePolicyActionsMenu: React.FunctionComponent<{ data-test-subj="PackagePolicyActionsEditItem" disabled={!canWriteIntegrationPolicies || !agentPolicy} icon="pencil" - href={getHref('integration_policy_edit', { + href={`${getHref('integration_policy_edit', { packagePolicyId: packagePolicy.id, - })} + })}${from ? `?from=${from}` : ''}`} key="packagePolicyEdit" > Date: Tue, 9 Jan 2024 21:18:03 +0100 Subject: [PATCH 12/20] [monitoring] Add version header to Integration installation call (#174509) The initial install call fails because we don't pass the version header. --- .../pages/elasticsearch/ingest_pipeline_modal.tsx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/monitoring/public/application/pages/elasticsearch/ingest_pipeline_modal.tsx b/x-pack/plugins/monitoring/public/application/pages/elasticsearch/ingest_pipeline_modal.tsx index 1a9f400049305..29207177d93ec 100644 --- a/x-pack/plugins/monitoring/public/application/pages/elasticsearch/ingest_pipeline_modal.tsx +++ b/x-pack/plugins/monitoring/public/application/pages/elasticsearch/ingest_pipeline_modal.tsx @@ -43,7 +43,10 @@ export const ingestPipelineTabOnClick = async ( }); if (!dashboardFound) { - const installPackage = () => services.http!.post('/api/fleet/epm/packages/elasticsearch'); + const installPackage = () => + services.http!.post('/api/fleet/epm/packages/elasticsearch', { + headers: { 'Elastic-Api-Version': '2023-10-31' }, + }); const ref = services.overlays!.openModal( toMountPoint( From 2614e92c4cb9321815970f80cfa615ce7378c025 Mon Sep 17 00:00:00 2001 From: Lisa Cawley Date: Tue, 9 Jan 2024 12:53:38 -0800 Subject: [PATCH 13/20] [Connectors][ServiceNow SecOps] Automate screenshots, add cross-scope privileges (#173941) --- .../action-types/servicenow-itom.asciidoc | 2 +- .../action-types/servicenow-sir.asciidoc | 255 +++++++++++++----- .../action-types/servicenow.asciidoc | 40 +-- .../images/servicenow-sir-connector-basic.png | Bin 226843 -> 253532 bytes .../images/servicenow-sir-connector-oauth.png | Bin 210291 -> 311621 bytes .../stack_connectors/index.ts | 1 + .../servicenow_sir_connector.ts | 48 ++++ 7 files changed, 259 insertions(+), 87 deletions(-) create mode 100644 x-pack/test/screenshot_creation/apps/response_ops_docs/stack_connectors/servicenow_sir_connector.ts diff --git a/docs/management/connectors/action-types/servicenow-itom.asciidoc b/docs/management/connectors/action-types/servicenow-itom.asciidoc index ea21cb72248f7..2dc6266745336 100644 --- a/docs/management/connectors/action-types/servicenow-itom.asciidoc +++ b/docs/management/connectors/action-types/servicenow-itom.asciidoc @@ -31,7 +31,7 @@ image::management/connectors/images/servicenow-itom-connector-oauth.png[{sn-itom [[servicenow-itom-connector-configuration]] ==== Connector configuration -{sn-itom} connectors have a name and the following configuration properties: +{sn-itom} connectors have the following configuration properties: Client ID:: The client identifier assigned to your OAuth application. diff --git a/docs/management/connectors/action-types/servicenow-sir.asciidoc b/docs/management/connectors/action-types/servicenow-sir.asciidoc index 30ea222aa4e14..da2b37dc1f558 100644 --- a/docs/management/connectors/action-types/servicenow-sir.asciidoc +++ b/docs/management/connectors/action-types/servicenow-sir.asciidoc @@ -12,18 +12,202 @@ The {sn-sir} connector uses the https://developer.servicenow.com/dev.do#!/reference/api/sandiego/rest/c_ImportSetAPI[import set API] to create {sn} security incidents. You can use the connector for rule actions and cases. +[float] +[[define-servicenow-sir-ui]] +=== Create connectors in {kib} + +You can create connectors in *{stack-manage-app} > {connectors-ui}* +or as needed when you're creating a rule. You must choose whether to use OAuth for authentication. + +[role="screenshot"] +image::management/connectors/images/servicenow-sir-connector-basic.png[{sn-sir} connector using basic auth] +// NOTE: This is an autogenerated screenshot. Do not edit it directly. + +[role="screenshot"] +image::management/connectors/images/servicenow-sir-connector-oauth.png[{sn-sir} connector using OAuth] +// NOTE: This is an autogenerated screenshot. Do not edit it directly. + +[float] +[[servicenow-sir-connector-configuration]] +==== Connector configuration + +{sn-sir} connectors have the following configuration properties: + +Client ID:: +The client ID assigned to your OAuth application. +Client Secret:: +The client secret assigned to your OAuth application. +JWT verifier key ID:: +The key identifier assigned to the JWT verifier map of your OAuth application. +Password:: +The password for HTTP basic authentication. +Private key:: +The RSA private key that you created for use in {sn}. +Private key password:: +The password for the RSA private key. +This value is required if you set a password for your private key. +{sn} instance URL:: +The full {sn} instance URL. +Use OAuth authentication:: +By default, basic authentication is used instead of open authorization (OAuth). +User identifier:: +The identifier to use for OAuth type authentication. +This identifier should be the user field you selected during setup. +For example, if the selected user field is `Email`, the user identifier should be the user's email address. +Username:: +The username for HTTP basic authentication. + +[float] +[[servicenow-sir-action-configuration]] +=== Test connectors + +You can test connectors with the <> or +as you're creating or editing the connector in {kib}. For example: + +[role="screenshot"] +image::management/connectors/images/servicenow-sir-params-test.png[{sn-sir} params test] + +{sn-sir} actions have the following configuration properties. + +Additional comments:: +Additional information for the client, such as how to troubleshoot the issue. +Category:: +The category of the incident. +Correlation display:: +A descriptive label of the alert for correlation purposes in {sn}. +Correlation ID:: +Connectors using the same correlation ID will be associated with the same {sn} incident. +This value determines whether a new {sn} incident will be created or an existing one is updated. Modifying this value is optional; if not modified, the rule ID and alert ID are combined as `{{ruleID}}:{{alert ID}}` to form the correlation ID value in {sn}. +The maximum character length for this value is 100 characters. ++ +-- +NOTE: Using the default configuration of `{{ruleID}}:{{alert ID}}` ensures that {sn} will create a separate incident record for every generated alert that uses a unique alert ID. +If the rule generates multiple alerts that use the same alert IDs, {sn} creates and continually updates a single incident record for the alert. +-- + +Description:: +The details about the incident. +Priority:: +The priority of the incident. +Short description:: +A short description for the incident, used for searching the contents of the knowledge base. +Subcategory:: +The subcategory of the incident. + +[float] +[[servicenow-sir-connector-networking-configuration]] +=== Connector networking configuration + +Use the <> to customize connector networking configurations, such as proxies, certificates, or TLS settings. You can set configurations that apply to all your connectors or use `xpack.actions.customHostSettings` to set per-host configurations. + +[float] +[[configuring-servicenow-sir]] +=== Configure {sn-sir} + +{sn} offers free https://developer.servicenow.com/dev.do#!/guides/madrid/now-platform/pdi-guide/obtaining-a-pdi[Personal Developer Instances], which you can use to test incidents. + [float] [[servicenow-sir-connector-prerequisites]] -=== Prerequisites +==== Prerequisites After upgrading from {stack} version 7.15.0 or earlier to version 7.16.0 or later, you must complete the following within your {sn} instance before creating a new {sn-sir} connector or <>: . Install https://store.servicenow.com/sn_appstore_store.do#!/store/application/2f0746801baeb01019ae54e4604bcb0f[Elastic for Security Operations (SecOps)] from the {sn} Store. +. <>. . <>. . <>. . If you use open authorization (OAuth), you must also: .. <>. .. <>. +[float] +[[servicenow-sir-connector-privileges]] +==== Assign cross-scope privileges + +The Elastic for Security Operations app requires specific cross-scope privilege records to run successfully. +In particular, you must have a privilege record for the `Elastic for Security Operations` application with the status set to `Allowed` for each of the following targets: + +|=== +|Target scope|Name|Type|Operation + +|Global +|Glide API: string utilities +|Scriptable +|Execute API + +|Global +|GlideRecord.insert +|Scriptable +|Execute API + +|Global +|GlideRecord.setValue +|Scriptable +|Execute API + +|Global +|GlideRecordSecure.getValue +|Scriptable +|Execute API + +|Global +|RESTAPIRequest +|Scriptable +|Execute API + +|Global +|RESTAPIRequestBody +|Scriptable +|Execute API + +|Global +|ScopedGlideElement +|Scriptable +|Execute API + +|Global +|ScriptableServiceResultBuilder.setBody +|Scriptable +|Execute API + +|Security incident response +|sn_si_incident +|Table +|Read + +|Threat intelligence support common +|sn_ti_m2m_task_observable +|Table +|Create + +|Threat intelligence support common +|sn_ti_m2m_task_observable +|Table +|Read + +|Threat intelligence support common +|sn_ti_observable +|Table +|Create + +|Threat intelligence support common +|sn_ti_observable +|Table +|Read + +|Threat intelligence support common +|sn_ti_observable_type +|Table +|Read +|=== + +To access the cross scope privileges table: + +1. Log into {sn} and set your application scope to Elastic for Security Operations. +2. Click *All* and search for `sys_scope_privilege`. + +For more details, refer to the https://docs.servicenow.com/[{sn} product documentation]. + + [float] [[servicenow-sir-connector-prerequisites-integration-user]] ==== Create a {sn} integration user @@ -93,71 +277,4 @@ To update a deprecated connector: .. Install https://store.servicenow.com/sn_appstore_store.do#!/store/application/2f0746801baeb01019ae54e4604bcb0f[Elastic for Security Operations (SecOps)] from the {sn} Store and complete the <>. .. Enter the URL of your {sn} instance. .. Enter the username and password of your {sn} instance. -. Click *Update*. - -[float] -[[define-servicenow-sir-ui]] -=== Create connectors in {kib} - -You can create connectors in *{stack-manage-app} > {connectors-ui}* -or as needed when you're creating a rule. You must choose whether to use OAuth for authentication. - -[role="screenshot"] -image::management/connectors/images/servicenow-sir-connector-basic.png[{sn-sir} connector using basic auth] - -[role="screenshot"] -image::management/connectors/images/servicenow-sir-connector-oauth.png[{sn-sir} connector using OAuth] - -[float] -[[servicenow-sir-connector-configuration]] -==== Connector configuration - -{sn-sir} connectors have the following configuration properties: - -Name:: The name of the connector. -Is OAuth:: The type of authentication to use. -URL:: {sn} instance URL. -Username:: Username for HTTP Basic authentication. -Password:: Password for HTTP Basic authentication. -User Identifier:: Identifier to use for OAuth type authentication. This identifier should be the *User field* you selected during setup. For example, if the selected *User field* is *Email*, the user identifier should be the user's email address. -Client ID:: The client ID assigned to your OAuth application. -Client Secret:: The client secret assigned to your OAuth application. -JWT Key ID:: The key ID assigned to the JWT verifier map of your OAuth application. -Private Key:: The RSA private key generated during setup. -Private Key Password:: The password for the RSA private key generated during setup, if set. - -[float] -[[servicenow-sir-action-configuration]] -=== Test connectors - -You can test connectors with the <> or -as you're creating or editing the connector in {kib}. For example: - -[role="screenshot"] -image::management/connectors/images/servicenow-sir-params-test.png[{sn-sir} params test] - -{sn-sir} actions have the following configuration properties. - -Short description:: A short description for the incident, used for searching the contents of the knowledge base. -Priority:: The priority of the incident. -Category:: The category of the incident. -Subcategory:: The subcategory of the incident. -Correlation ID:: Connectors using the same Correlation ID will be associated with the same {sn} incident. This value determines whether a new {sn} incident will be created or an existing one is updated. Modifying this value is optional; if not modified, the rule ID and alert ID are combined as `{{ruleID}}:{{alert ID}}` to form the Correlation ID value in {sn}. The maximum character length for this value is 100 characters. - -NOTE: Using the default configuration of `{{ruleID}}:{{alert ID}}` ensures that {sn} will create a separate incident record for every generated alert that uses a unique alert ID. If the rule generates multiple alerts that use the same alert IDs, {sn} creates and continually updates a single incident record for the alert. - -Correlation Display:: A descriptive label of the alert for correlation purposes in {sn}. -Description:: The details about the incident. -Additional comments:: Additional information for the client, such as how to troubleshoot the issue. - -[float] -[[servicenow-sir-connector-networking-configuration]] -=== Connector networking configuration - -Use the <> to customize connector networking configurations, such as proxies, certificates, or TLS settings. You can set configurations that apply to all your connectors or use `xpack.actions.customHostSettings` to set per-host configurations. - -[float] -[[configuring-servicenow-sir]] -=== Configure {sn-sir} - -{sn} offers free https://developer.servicenow.com/dev.do#!/guides/madrid/now-platform/pdi-guide/obtaining-a-pdi[Personal Developer Instances], which you can use to test incidents. +. Click *Update*. \ No newline at end of file diff --git a/docs/management/connectors/action-types/servicenow.asciidoc b/docs/management/connectors/action-types/servicenow.asciidoc index db0b9b3183a6f..ab4e18a0ff5b3 100644 --- a/docs/management/connectors/action-types/servicenow.asciidoc +++ b/docs/management/connectors/action-types/servicenow.asciidoc @@ -32,7 +32,7 @@ image::management/connectors/images/servicenow-connector-oauth.png[ServiceNow co [[servicenow-connector-configuration]] ==== Connector configuration -{sn-itsm} connectors have a name and the following configuration properties: +{sn-itsm} connectors have the following configuration properties: Client ID:: The client identifier assigned to your OAuth application. @@ -73,6 +73,8 @@ Additional comments:: Additional information for the client, such as how to troubleshoot the issue. Category:: The category of the incident. +Correlation display:: +A descriptive label of the alert for correlation purposes in {sn}. Correlation ID:: Connectors using the same correlation ID will be associated with the same {sn} incident. This value determines whether a new {sn} incident will be created or an existing one is updated. @@ -83,8 +85,6 @@ The maximum character length for this value is 100 characters. NOTE: Using the default configuration of `{{ruleID}}:{{alert ID}}` ensures that {sn} will create a separate incident record for every generated alert that uses a unique alert ID. If the rule generates multiple alerts that use the same alert IDs, {sn} creates and continually updates a single incident record for the alert. -- -Correlation display:: -A descriptive label of the alert for correlation purposes in {sn}. Description:: The details about the incident. Impact:: @@ -135,34 +135,40 @@ from the {sn} store. ==== Assign cross-scope privileges The Elastic for ITSM app requires specific cross-scope privilege records to run successfully. -In particular, you must have a privilege record for the `Elastic for ITSM` application and source scope with a `global` target scope for each of the following targets: +In particular, you must have a privilege record for the `Elastic for ITSM` application with the status set to `Allowed` for each of the following targets: |=== -|Target name, type|Operation|Status +|Target scope|Name|Type|Operation -|GlideRecord.insert, Scriptable +|Global +|GlideRecord.insert +|Scriptable |Execute API -|Allowed -|GlideRecord.setValue, Scriptable +|Global +|GlideRecord.setValue +|Scriptable |Execute API -|Allowed -|GlideRecordSecure.getValue, Scriptable +|Global +|GlideRecordSecure.getValue +|Scriptable |Execute API -|Allowed -|Incident, Table +|Global +|Incident +|Table |Read -|Allowed -|ScriptableServiceResultBuilder.setBody, Scriptable +|Global +|ScriptableServiceResultBuilder.setBody +|Scriptable |Execute API -|Allowed -|ScopedGlideElement, Scriptable +|Global +|ScopedGlideElement +|Scriptable |Execute API -|Allowed |=== To access the cross scope privileges table: diff --git a/docs/management/connectors/images/servicenow-sir-connector-basic.png b/docs/management/connectors/images/servicenow-sir-connector-basic.png index 95cefce1544948fbbc1ce97e99239f3b96fbd1cb..1404526f6418d17d3784bba97b78101af40b9da9 100644 GIT binary patch literal 253532 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%0A2rr~LM_#vdp0b*DsG!1 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ξ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 m`O!sMQq;mYeDyq|vN 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

&mfE^hY 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 Vi8^`1WDoE&(l`6P^wO<+{{^URKzINE literal 210291 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ᐶ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 diff --git a/x-pack/test/screenshot_creation/apps/response_ops_docs/stack_connectors/index.ts b/x-pack/test/screenshot_creation/apps/response_ops_docs/stack_connectors/index.ts index 5b9afd0ffd32d..a638ab36805d8 100644 --- a/x-pack/test/screenshot_creation/apps/response_ops_docs/stack_connectors/index.ts +++ b/x-pack/test/screenshot_creation/apps/response_ops_docs/stack_connectors/index.ts @@ -65,6 +65,7 @@ export default function ({ loadTestFile, getService }: FtrProviderContext) { loadTestFile(require.resolve('./server_log_connector')); loadTestFile(require.resolve('./servicenow_itom_connector')); loadTestFile(require.resolve('./servicenow_itsm_connector')); + loadTestFile(require.resolve('./servicenow_sir_connector')); loadTestFile(require.resolve('./slack_connector')); loadTestFile(require.resolve('./tines_connector')); loadTestFile(require.resolve('./webhook_connector')); diff --git a/x-pack/test/screenshot_creation/apps/response_ops_docs/stack_connectors/servicenow_sir_connector.ts b/x-pack/test/screenshot_creation/apps/response_ops_docs/stack_connectors/servicenow_sir_connector.ts new file mode 100644 index 0000000000000..4ffb6141875aa --- /dev/null +++ b/x-pack/test/screenshot_creation/apps/response_ops_docs/stack_connectors/servicenow_sir_connector.ts @@ -0,0 +1,48 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { FtrProviderContext } from '../../../ftr_provider_context'; + +export default function ({ getService, getPageObjects }: FtrProviderContext) { + const commonScreenshots = getService('commonScreenshots'); + const screenshotDirectories = ['response_ops_docs', 'stack_connectors']; + const pageObjects = getPageObjects(['common', 'header']); + const actions = getService('actions'); + const testSubjects = getService('testSubjects'); + + describe('servicenow secops connector', function () { + beforeEach(async () => { + await pageObjects.common.navigateToApp('connectors'); + await pageObjects.header.waitUntilLoadingHasFinished(); + }); + + it('servicenow secops connector screenshots', async () => { + await pageObjects.common.navigateToApp('connectors'); + await pageObjects.header.waitUntilLoadingHasFinished(); + await actions.common.openNewConnectorForm('servicenow-sir'); + await testSubjects.setValue('nameInput', 'ServiceNow SecOps test connector'); + await testSubjects.setValue('credentialsApiUrlFromInput', 'https://dev123.service-now.com'); + await testSubjects.click('input'); + await commonScreenshots.takeScreenshot( + 'servicenow-sir-connector-oauth', + screenshotDirectories, + 1920, + 1600 + ); + await testSubjects.click('input'); + await testSubjects.setValue('connector-servicenow-username-form-input', 'testuser'); + await testSubjects.setValue('connector-servicenow-password-form-input', 'testpassword'); + await commonScreenshots.takeScreenshot( + 'servicenow-sir-connector-basic', + screenshotDirectories, + 1920, + 1400 + ); + await testSubjects.click('euiFlyoutCloseButton'); + }); + }); +} From 1d8eb89fb3796576dd4d4d2f7e84b243dbe734a1 Mon Sep 17 00:00:00 2001 From: Matthias Wilhelm Date: Tue, 9 Jan 2024 22:37:31 +0100 Subject: [PATCH 14/20] [UnifiedFieldList] Add new fields ingested in background with valid mappings (#172329) Improves UnifiedFieldList by adding a newly ingested field to the list with the right type. On top of that, it triggers a refresh of the selected DataView fields, so the new field be available by consumers of the DataView. Co-authored-by: Julia Rechkunova --- .../field_list_sidebar.tsx | 84 +++++++++-------- .../src/hooks/use_existing_fields.test.tsx | 48 ++++++++++ .../src/hooks/use_existing_fields.ts | 22 ++++- .../src/hooks/use_grouped_fields.test.tsx | 81 ++++++++++++++++ .../src/hooks/use_grouped_fields.ts | 24 ++++- .../src/hooks/use_new_fields.test.tsx | 80 ++++++++++++++++ .../src/hooks/use_new_fields.ts | 62 +++++++++++++ .../field_existing/field_existing_utils.ts | 40 +++++--- .../field_existing/load_field_existing.ts | 3 +- .../dataview_picker/change_dataview.tsx | 6 -- .../discover/group4/_field_list_new_fields.ts | 86 +++++++++++++++++ test/functional/apps/discover/group4/index.ts | 1 + .../public/data_views_service/loader.test.ts | 37 +++++++- .../lens/public/data_views_service/loader.ts | 93 +++++++++++-------- .../datasources/form_based/datapanel.tsx | 63 ++++++++----- .../apps/lens/group2/fields_list.ts | 50 +++++++++- 16 files changed, 649 insertions(+), 131 deletions(-) create mode 100644 packages/kbn-unified-field-list/src/hooks/use_new_fields.test.tsx create mode 100644 packages/kbn-unified-field-list/src/hooks/use_new_fields.ts create mode 100644 test/functional/apps/discover/group4/_field_list_new_fields.ts diff --git a/packages/kbn-unified-field-list/src/containers/unified_field_list_sidebar/field_list_sidebar.tsx b/packages/kbn-unified-field-list/src/containers/unified_field_list_sidebar/field_list_sidebar.tsx index 4bc54069336b0..f8438b0917577 100644 --- a/packages/kbn-unified-field-list/src/containers/unified_field_list_sidebar/field_list_sidebar.tsx +++ b/packages/kbn-unified-field-list/src/containers/unified_field_list_sidebar/field_list_sidebar.tsx @@ -22,7 +22,7 @@ import { useEuiTheme, } from '@elastic/eui'; import { ToolbarButton } from '@kbn/shared-ux-button-toolbar'; -import { type DataViewField } from '@kbn/data-views-plugin/public'; +import { DataViewField, type FieldSpec } from '@kbn/data-views-plugin/common'; import { getDataViewFieldSubtypeMulti } from '@kbn/es-query/src/utils'; import { FIELDS_LIMIT_SETTING, SEARCH_FIELDS_FROM_SOURCE } from '@kbn/discover-utils'; import { FieldList } from '../../components/field_list'; @@ -191,25 +191,6 @@ export const UnifiedFieldListSidebarComponent: React.FC { - if ( - searchMode !== 'documents' || - !useNewFieldsApi || - stateService.creationOptions.disableMultiFieldsGroupingByParent - ) { - setMultiFieldsMap(undefined); // we don't have to calculate multifields in this case - } else { - setMultiFieldsMap(calculateMultiFields(allFields, selectedFieldsState.selectedFieldsMap)); - } - }, [ - stateService.creationOptions.disableMultiFieldsGroupingByParent, - selectedFieldsState.selectedFieldsMap, - allFields, - useNewFieldsApi, - setMultiFieldsMap, - searchMode, - ]); - const popularFieldsLimit = useMemo( () => core.uiSettings.get(FIELDS_LIMIT_SETTING), [core.uiSettings] @@ -226,24 +207,47 @@ export const UnifiedFieldListSidebarComponent: React.FC({ - dataViewId: (searchMode === 'documents' && dataView?.id) || null, // passing `null` for text-based queries - allFields, - popularFieldsLimit: - searchMode !== 'documents' || stateService.creationOptions.disablePopularFields - ? 0 - : popularFieldsLimit, - isAffectedByGlobalFilter, - services: { - dataViews, - core, - }, - sortedSelectedFields: onSelectedFieldFilter ? undefined : selectedFieldsState.selectedFields, - onSelectedFieldFilter, - onSupportedFieldFilter: - stateService.creationOptions.onSupportedFieldFilter ?? onSupportedFieldFilter, - onOverrideFieldGroupDetails: stateService.creationOptions.onOverrideFieldGroupDetails, - }); + const { fieldListFiltersProps, fieldListGroupedProps, allFieldsModified } = + useGroupedFields({ + dataViewId: (searchMode === 'documents' && dataView?.id) || null, // passing `null` for text-based queries + allFields, + popularFieldsLimit: + searchMode !== 'documents' || stateService.creationOptions.disablePopularFields + ? 0 + : popularFieldsLimit, + isAffectedByGlobalFilter, + services: { + dataViews, + core, + }, + sortedSelectedFields: onSelectedFieldFilter ? undefined : selectedFieldsState.selectedFields, + onSelectedFieldFilter, + onSupportedFieldFilter: + stateService.creationOptions.onSupportedFieldFilter ?? onSupportedFieldFilter, + onOverrideFieldGroupDetails: stateService.creationOptions.onOverrideFieldGroupDetails, + getNewFieldsBySpec, + }); + + useEffect(() => { + if ( + searchMode !== 'documents' || + !useNewFieldsApi || + stateService.creationOptions.disableMultiFieldsGroupingByParent + ) { + setMultiFieldsMap(undefined); // we don't have to calculate multifields in this case + } else { + setMultiFieldsMap( + calculateMultiFields(allFieldsModified, selectedFieldsState.selectedFieldsMap) + ); + } + }, [ + stateService.creationOptions.disableMultiFieldsGroupingByParent, + selectedFieldsState.selectedFieldsMap, + allFieldsModified, + useNewFieldsApi, + setMultiFieldsMap, + searchMode, + ]); const renderFieldItem: FieldListGroupedProps['renderFieldItem'] = useCallback( ({ field, groupName, groupIndex, itemIndex, fieldSearchHighlight }) => ( @@ -456,3 +460,7 @@ function calculateMultiFields( }); return map; } + +function getNewFieldsBySpec(fieldSpecArr: FieldSpec[]): DataViewField[] { + return fieldSpecArr.map((fieldSpec) => new DataViewField(fieldSpec)); +} diff --git a/packages/kbn-unified-field-list/src/hooks/use_existing_fields.test.tsx b/packages/kbn-unified-field-list/src/hooks/use_existing_fields.test.tsx index 7cf22950a4a7d..0af0e4abc8e0d 100644 --- a/packages/kbn-unified-field-list/src/hooks/use_existing_fields.test.tsx +++ b/packages/kbn-unified-field-list/src/hooks/use_existing_fields.test.tsx @@ -125,6 +125,7 @@ describe('UnifiedFieldList useExistingFields', () => { expect(hookReader.result.current.getFieldsExistenceStatus(dataViewId)).toBe( ExistenceFetchStatus.succeeded ); + expect(hookReader.result.current.getNewFields(dataViewId)).toStrictEqual([]); // does not have existence info => works less restrictive const anotherDataViewId = 'test-id'; @@ -140,6 +141,7 @@ describe('UnifiedFieldList useExistingFields', () => { expect(hookReader.result.current.getFieldsExistenceStatus(anotherDataViewId)).toBe( ExistenceFetchStatus.unknown ); + expect(hookReader.result.current.getNewFields(dataViewId)).toStrictEqual([]); }); it('should work correctly with multiple readers', async () => { @@ -217,6 +219,7 @@ describe('UnifiedFieldList useExistingFields', () => { expect(currentResult.isFieldsExistenceInfoUnavailable(dataViewId)).toBe(true); expect(currentResult.hasFieldData(dataViewId, dataView.fields[0].name)).toBe(true); expect(currentResult.getFieldsExistenceStatus(dataViewId)).toBe(ExistenceFetchStatus.failed); + expect(currentResult.getNewFields(dataViewId)).toStrictEqual([]); }); it('should work correctly for multiple data views', async () => { @@ -533,4 +536,49 @@ describe('UnifiedFieldList useExistingFields', () => { expect(params.onNoData).toHaveBeenCalledTimes(1); // still 1 time }); + + it('should include newFields', async () => { + const newFields = [{ name: 'test', type: 'keyword', searchable: true, aggregatable: true }]; + + (ExistingFieldsServiceApi.loadFieldExisting as jest.Mock).mockImplementation( + async ({ dataView: currentDataView }) => { + return { + existingFieldNames: [currentDataView.fields[0].name], + newFields, + }; + } + ); + + const params: ExistingFieldsFetcherParams = { + dataViews: [dataView], + services: mockedServices, + fromDate: '2019-01-01', + toDate: '2020-01-01', + query: { query: '', language: 'lucene' }, + filters: [], + }; + const hookFetcher = renderHook(useExistingFieldsFetcher, { + initialProps: params, + }); + + const hookReader = renderHook(useExistingFieldsReader); + await hookFetcher.waitForNextUpdate(); + + expect(ExistingFieldsServiceApi.loadFieldExisting).toHaveBeenCalledWith( + expect.objectContaining({ + fromDate: '2019-01-01', + toDate: '2020-01-01', + dslQuery, + dataView, + timeFieldName: dataView.timeFieldName, + }) + ); + + expect(hookReader.result.current.getFieldsExistenceStatus(dataView.id!)).toBe( + ExistenceFetchStatus.succeeded + ); + + expect(hookReader.result.current.getNewFields(dataView.id!)).toBe(newFields); + expect(hookReader.result.current.getNewFields('another-id')).toStrictEqual([]); + }); }); diff --git a/packages/kbn-unified-field-list/src/hooks/use_existing_fields.ts b/packages/kbn-unified-field-list/src/hooks/use_existing_fields.ts index d099a6f2b85e2..cd4e9ef05206f 100644 --- a/packages/kbn-unified-field-list/src/hooks/use_existing_fields.ts +++ b/packages/kbn-unified-field-list/src/hooks/use_existing_fields.ts @@ -12,7 +12,7 @@ import { BehaviorSubject } from 'rxjs'; import type { CoreStart } from '@kbn/core/public'; import type { AggregateQuery, EsQueryConfig, Filter, Query } from '@kbn/es-query'; import { type DataPublicPluginStart } from '@kbn/data-plugin/public'; -import type { DataView, DataViewsContract } from '@kbn/data-views-plugin/common'; +import type { DataView, DataViewsContract, FieldSpec } from '@kbn/data-views-plugin/common'; import { getEsQueryConfig } from '@kbn/data-service/src/es_query'; import { reportPerformanceMetricEvent } from '@kbn/ebt-tools'; import { loadFieldExisting } from '../services/field_existing'; @@ -20,10 +20,12 @@ import { ExistenceFetchStatus } from '../types'; const getBuildEsQueryAsync = async () => (await import('@kbn/es-query')).buildEsQuery; const generateId = htmlIdGenerator(); +const DEFAULT_EMPTY_NEW_FIELDS: FieldSpec[] = []; export interface ExistingFieldsInfo { fetchStatus: ExistenceFetchStatus; existingFieldsByFieldNameMap: Record; + newFields?: FieldSpec[]; numberOfFetches: number; hasDataViewRestrictions?: boolean; } @@ -54,6 +56,7 @@ export interface ExistingFieldsReader { hasFieldData: (dataViewId: string, fieldName: string) => boolean; getFieldsExistenceStatus: (dataViewId: string) => ExistenceFetchStatus; isFieldsExistenceInfoUnavailable: (dataViewId: string) => boolean; + getNewFields: (dataViewId: string) => FieldSpec[]; } const initialData: ExistingFieldsByDataViewMap = {}; @@ -157,6 +160,7 @@ export const useExistingFieldsFetcher = ( } info.existingFieldsByFieldNameMap = booleanMap(existingFieldNames); + info.newFields = result.newFields; info.fetchStatus = ExistenceFetchStatus.succeeded; } catch (error) { info.fetchStatus = ExistenceFetchStatus.failed; @@ -286,6 +290,19 @@ export const useExistingFieldsReader: () => ExistingFieldsReader = () => { [existingFieldsByDataViewMap] ); + const getNewFields = useCallback( + (dataViewId: string) => { + const info = existingFieldsByDataViewMap[dataViewId]; + + if (info?.fetchStatus === ExistenceFetchStatus.succeeded) { + return info?.newFields ?? DEFAULT_EMPTY_NEW_FIELDS; + } + + return DEFAULT_EMPTY_NEW_FIELDS; + }, + [existingFieldsByDataViewMap] + ); + const getFieldsExistenceInfo = useCallback( (dataViewId: string) => { return dataViewId ? existingFieldsByDataViewMap[dataViewId] : unknownInfo; @@ -321,8 +338,9 @@ export const useExistingFieldsReader: () => ExistingFieldsReader = () => { hasFieldData, getFieldsExistenceStatus, isFieldsExistenceInfoUnavailable, + getNewFields, }), - [hasFieldData, getFieldsExistenceStatus, isFieldsExistenceInfoUnavailable] + [hasFieldData, getFieldsExistenceStatus, isFieldsExistenceInfoUnavailable, getNewFields] ); }; diff --git a/packages/kbn-unified-field-list/src/hooks/use_grouped_fields.test.tsx b/packages/kbn-unified-field-list/src/hooks/use_grouped_fields.test.tsx index 053e7d912d375..4a937f86bd5c0 100644 --- a/packages/kbn-unified-field-list/src/hooks/use_grouped_fields.test.tsx +++ b/packages/kbn-unified-field-list/src/hooks/use_grouped_fields.test.tsx @@ -96,6 +96,7 @@ describe('UnifiedFieldList useGroupedFields()', () => { ? ExistenceFetchStatus.succeeded : ExistenceFetchStatus.unknown, isFieldsExistenceInfoUnavailable: (dataViewId) => dataViewId !== props.dataViewId, + getNewFields: () => [], }) ); @@ -156,6 +157,7 @@ describe('UnifiedFieldList useGroupedFields()', () => { ? ExistenceFetchStatus.succeeded : ExistenceFetchStatus.unknown, isFieldsExistenceInfoUnavailable: (dataViewId) => dataViewId !== props.dataViewId, + getNewFields: () => [], }) ); @@ -185,6 +187,8 @@ describe('UnifiedFieldList useGroupedFields()', () => { expect(fieldListGroupedProps.fieldsExistenceStatus).toBe(ExistenceFetchStatus.succeeded); expect(fieldListGroupedProps.fieldsExistInIndex).toBe(true); + expect(result.current.allFieldsModified).toBe(allFields); + expect(result.current.hasNewFields).toBe(false); rerender({ ...props, @@ -198,6 +202,82 @@ describe('UnifiedFieldList useGroupedFields()', () => { expect(result.current.fieldListGroupedProps.scrollToTopResetCounter).not.toBe( scrollToTopResetCounter1 ); + expect(result.current.allFieldsModified).toBe(allFields); + expect(result.current.hasNewFields).toBe(false); + + (ExistenceApi.useExistingFieldsReader as jest.Mock).mockRestore(); + }); + + it('should work correctly with new fields', async () => { + const props: GroupedFieldsParams = { + dataViewId: dataView.id!, + allFields, + services: mockedServices, + getNewFieldsBySpec: (spec) => spec.map((field) => new DataViewField(field)), + }; + + const newField = { name: 'test', type: 'keyword', searchable: true, aggregatable: true }; + + jest.spyOn(ExistenceApi, 'useExistingFieldsReader').mockImplementation( + (): ExistingFieldsReader => ({ + hasFieldData: (dataViewId) => { + return dataViewId === props.dataViewId; + }, + getFieldsExistenceStatus: (dataViewId) => + dataViewId === props.dataViewId + ? ExistenceFetchStatus.succeeded + : ExistenceFetchStatus.unknown, + isFieldsExistenceInfoUnavailable: (dataViewId) => dataViewId !== props.dataViewId, + getNewFields: () => [newField], + }) + ); + + const { result, waitForNextUpdate, rerender } = renderHook(useGroupedFields, { + initialProps: props, + }); + + await waitForNextUpdate(); + + let fieldListGroupedProps = result.current.fieldListGroupedProps; + const fieldGroups = fieldListGroupedProps.fieldGroups; + const scrollToTopResetCounter1 = fieldListGroupedProps.scrollToTopResetCounter; + + expect( + Object.keys(fieldGroups!).map( + (key) => `${key}-${fieldGroups![key as FieldsGroupNames]?.fields.length}` + ) + ).toStrictEqual([ + 'SpecialFields-0', + 'SelectedFields-0', + 'PopularFields-0', + 'AvailableFields-25', + 'UnmappedFields-1', + 'EmptyFields-0', + 'MetaFields-3', + ]); + + expect(fieldListGroupedProps.fieldsExistenceStatus).toBe(ExistenceFetchStatus.succeeded); + expect(fieldListGroupedProps.fieldsExistInIndex).toBe(true); + expect(result.current.allFieldsModified).toStrictEqual([ + ...allFields, + new DataViewField(newField), + ]); + expect(result.current.hasNewFields).toBe(true); + + rerender({ + ...props, + dataViewId: null, // for text-based queries + allFields, + }); + + fieldListGroupedProps = result.current.fieldListGroupedProps; + expect(fieldListGroupedProps.fieldsExistenceStatus).toBe(ExistenceFetchStatus.succeeded); + expect(fieldListGroupedProps.fieldsExistInIndex).toBe(true); + expect(result.current.fieldListGroupedProps.scrollToTopResetCounter).not.toBe( + scrollToTopResetCounter1 + ); + expect(result.current.allFieldsModified).toBe(allFields); + expect(result.current.hasNewFields).toBe(false); (ExistenceApi.useExistingFieldsReader as jest.Mock).mockRestore(); }); @@ -438,6 +518,7 @@ describe('UnifiedFieldList useGroupedFields()', () => { ? ExistenceFetchStatus.succeeded : ExistenceFetchStatus.unknown, isFieldsExistenceInfoUnavailable: (dataViewId) => dataViewId !== knownDataViewId, + getNewFields: () => [], }) ); diff --git a/packages/kbn-unified-field-list/src/hooks/use_grouped_fields.ts b/packages/kbn-unified-field-list/src/hooks/use_grouped_fields.ts index 16758ea4ee7f2..7853c7e67800b 100644 --- a/packages/kbn-unified-field-list/src/hooks/use_grouped_fields.ts +++ b/packages/kbn-unified-field-list/src/hooks/use_grouped_fields.ts @@ -10,8 +10,9 @@ import { groupBy } from 'lodash'; import { useEffect, useMemo, useState } from 'react'; import { i18n } from '@kbn/i18n'; import { type CoreStart } from '@kbn/core-lifecycle-browser'; -import { type DataView, type DataViewField } from '@kbn/data-views-plugin/common'; +import type { DataView, DataViewField } from '@kbn/data-views-plugin/common'; import { type DataViewsContract } from '@kbn/data-views-plugin/public'; +import { type UseNewFieldsParams, useNewFields } from './use_new_fields'; import { type FieldListGroups, type FieldsGroup, @@ -41,6 +42,7 @@ export interface GroupedFieldsParams { onOverrideFieldGroupDetails?: OverrideFieldGroupDetails; onSupportedFieldFilter?: (field: T) => boolean; onSelectedFieldFilter?: (field: T) => boolean; + getNewFieldsBySpec?: UseNewFieldsParams['getNewFieldsBySpec']; } export interface GroupedFieldsResult { @@ -52,6 +54,8 @@ export interface GroupedFieldsResult { fieldsExistInIndex: boolean; screenReaderDescriptionId?: string; }; + allFieldsModified: T[] | null; // `null` is for loading indicator + hasNewFields: boolean; } export function useGroupedFields({ @@ -65,6 +69,7 @@ export function useGroupedFields({ onOverrideFieldGroupDetails, onSupportedFieldFilter, onSelectedFieldFilter, + getNewFieldsBySpec, }: GroupedFieldsParams): GroupedFieldsResult { const fieldsExistenceReader = useExistingFieldsReader(); const fieldListFilters = useFieldFilters({ @@ -73,6 +78,7 @@ export function useGroupedFields({ getCustomFieldType, onSupportedFieldFilter, }); + const onFilterFieldList = fieldListFilters.onFilterField; const [dataView, setDataView] = useState(null); const isAffectedByTimeFilter = Boolean(dataView?.timeFieldName); @@ -101,6 +107,13 @@ export function useGroupedFields({ // if field existence information changed, reload the data view too }, [dataViewId, services.dataViews, setDataView, hasFieldDataHandler]); + const { allFieldsModified, hasNewFields } = useNewFields({ + dataView, + allFields, + getNewFieldsBySpec, + fieldsExistenceReader, + }); + // important when switching from a known dataViewId to no data view (like in text-based queries) useEffect(() => { if (dataView && !dataViewId) { @@ -120,13 +133,16 @@ export function useGroupedFields({ }; const selectedFields = sortedSelectedFields || []; - const sortedFields = [...(allFields || [])].sort(sortFields); + + const sortedFields = [...(allFieldsModified || [])].sort(sortFields); + const groupedFields = { ...getDefaultFieldGroups(), ...groupBy(sortedFields, (field) => { if (!sortedSelectedFields && onSelectedFieldFilter && onSelectedFieldFilter(field)) { selectedFields.push(field); } + if (onSupportedFieldFilter && !onSupportedFieldFilter(field)) { return 'skippedFields'; } @@ -311,7 +327,7 @@ export function useGroupedFields({ return fieldGroupDefinitions; }, [ - allFields, + allFieldsModified, onSupportedFieldFilter, onSelectedFieldFilter, onOverrideFieldGroupDetails, @@ -381,6 +397,8 @@ export function useGroupedFields({ return { fieldListGroupedProps, fieldListFiltersProps: fieldListFilters.fieldListFiltersProps, + allFieldsModified, + hasNewFields, }; } diff --git a/packages/kbn-unified-field-list/src/hooks/use_new_fields.test.tsx b/packages/kbn-unified-field-list/src/hooks/use_new_fields.test.tsx new file mode 100644 index 0000000000000..2be5d50764bc9 --- /dev/null +++ b/packages/kbn-unified-field-list/src/hooks/use_new_fields.test.tsx @@ -0,0 +1,80 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { renderHook } from '@testing-library/react-hooks'; +import { stubLogstashDataView as dataView } from '@kbn/data-views-plugin/common/data_view.stub'; +import { DataViewField } from '@kbn/data-views-plugin/common'; +import { useNewFields, type UseNewFieldsParams } from './use_new_fields'; +import { type ExistingFieldsReader } from './use_existing_fields'; +import { ExistenceFetchStatus } from '../types'; + +const fieldsExistenceReader: ExistingFieldsReader = { + hasFieldData: (dataViewId) => { + return dataViewId === dataView.id; + }, + getFieldsExistenceStatus: (dataViewId) => + dataViewId === dataView.id ? ExistenceFetchStatus.succeeded : ExistenceFetchStatus.unknown, + isFieldsExistenceInfoUnavailable: (dataViewId) => dataViewId !== dataView.id, + getNewFields: () => [], +}; + +describe('UnifiedFieldList useNewFields()', () => { + const allFields = dataView.fields; + + it('should work correctly in loading state', async () => { + const props: UseNewFieldsParams = { + dataView, + allFields: null, + fieldsExistenceReader, + }; + const { result } = renderHook(useNewFields, { + initialProps: props, + }); + + expect(result.current.allFieldsModified).toBe(null); + expect(result.current.hasNewFields).toBe(false); + }); + + it('should work correctly with empty new fields', async () => { + const props: UseNewFieldsParams = { + dataView, + allFields, + fieldsExistenceReader, + }; + const { result } = renderHook(useNewFields, { + initialProps: props, + }); + + expect(result.current.allFieldsModified).toBe(allFields); + expect(result.current.hasNewFields).toBe(false); + }); + + it('should work correctly with new fields', async () => { + const newField = { name: 'test', type: 'keyword', searchable: true, aggregatable: true }; + const newField2 = { ...newField, name: 'test2' }; + const props: UseNewFieldsParams = { + dataView, + allFields, + fieldsExistenceReader: { + ...fieldsExistenceReader, + getNewFields: () => [newField, newField2], + }, + getNewFieldsBySpec: (spec) => spec.map((field) => new DataViewField(field)), + }; + const { result } = renderHook(useNewFields, { + initialProps: props, + }); + + expect(result.current.allFieldsModified).toStrictEqual([ + ...allFields, + new DataViewField(newField), + new DataViewField(newField2), + ]); + expect(result.current.hasNewFields).toBe(true); + }); +}); diff --git a/packages/kbn-unified-field-list/src/hooks/use_new_fields.ts b/packages/kbn-unified-field-list/src/hooks/use_new_fields.ts new file mode 100644 index 0000000000000..51e143cc524c3 --- /dev/null +++ b/packages/kbn-unified-field-list/src/hooks/use_new_fields.ts @@ -0,0 +1,62 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { useMemo } from 'react'; +import type { FieldSpec } from '@kbn/data-views-plugin/common'; +import type { DataView, DataViewField } from '@kbn/data-views-plugin/common'; +import type { FieldListItem } from '../types'; +import type { ExistingFieldsReader } from './use_existing_fields'; + +export interface UseNewFieldsParams { + dataView?: DataView | null; + allFields: T[] | null; // `null` is for loading indicator + getNewFieldsBySpec?: (fields: FieldSpec[], dataView: DataView | null) => T[]; + fieldsExistenceReader: ExistingFieldsReader; +} + +export interface UseNewFieldsResult { + allFieldsModified: T[] | null; + hasNewFields: boolean; +} + +/** + * This hook is used to get the new fields of previous fields for wildcards request, and merges those + * with the existing fields. + */ +export function useNewFields({ + dataView, + allFields, + getNewFieldsBySpec, + fieldsExistenceReader, +}: UseNewFieldsParams): UseNewFieldsResult { + const dataViewId = dataView?.id; + + const newFields = useMemo(() => { + const newLoadedFields = + allFields && dataView?.id && getNewFieldsBySpec + ? getNewFieldsBySpec(fieldsExistenceReader.getNewFields(dataView?.id), dataView) + : null; + + return newLoadedFields?.length ? newLoadedFields : null; + }, [allFields, dataView, fieldsExistenceReader, getNewFieldsBySpec]); + + const hasNewFields = Boolean(allFields && newFields && newFields.length > 0); + + const allFieldsModified = useMemo(() => { + if (!allFields || !newFields?.length || !dataViewId) return allFields; + // Filtering out fields that e.g. Discover provides with fields that were provided by the previous fieldsForWildcards request + // These can be replaced by the new fields, which are mapped correctly, and therefore can be used in the right way + const allFieldsExlNew = allFields.filter( + (field) => !newFields.some((newField) => newField.name === field.name) + ); + + return [...allFieldsExlNew, ...newFields]; + }, [newFields, allFields, dataViewId]); + + return { allFieldsModified, hasNewFields }; +} diff --git a/packages/kbn-unified-field-list/src/services/field_existing/field_existing_utils.ts b/packages/kbn-unified-field-list/src/services/field_existing/field_existing_utils.ts index 2aa6137ffb1fb..41a1e53a33849 100644 --- a/packages/kbn-unified-field-list/src/services/field_existing/field_existing_utils.ts +++ b/packages/kbn-unified-field-list/src/services/field_existing/field_existing_utils.ts @@ -7,7 +7,7 @@ */ import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; -import { RuntimeField } from '@kbn/data-views-plugin/common'; +import type { DataViewField, RuntimeField } from '@kbn/data-views-plugin/common'; import type { DataViewsContract, DataView, FieldSpec } from '@kbn/data-views-plugin/common'; import type { IKibanaSearchRequest } from '@kbn/data-plugin/common'; @@ -49,15 +49,25 @@ export async function fetchFieldExistence({ metaFields: string[]; dataViewsService: DataViewsContract; }) { - const allFields = buildFieldList(dataView, metaFields); const existingFieldList = await dataViewsService.getFieldsForIndexPattern(dataView, { // filled in by data views service pattern: '', indexFilter: toQuery(timeFieldName, fromDate, toDate, dslQuery), }); + + // take care of fields of existingFieldList, that are not yet available + // in the given data view. Those fields we consider as new fields, + // that were ingested after the data view was loaded + const newFields = existingFieldList.filter((field) => !dataView.getFieldByName(field.name)); + // refresh the data view in case there are new fields + if (newFields.length) { + await dataViewsService.refreshFields(dataView, false); + } + const allFields = buildFieldList(dataView, metaFields); return { - indexPatternTitle: dataView.title, + indexPatternTitle: dataView.getIndexPattern(), existingFieldNames: existingFields(existingFieldList, allFields), + newFields, }; } @@ -66,19 +76,23 @@ export async function fetchFieldExistence({ */ export function buildFieldList(indexPattern: DataView, metaFields: string[]): Field[] { return indexPattern.fields.map((field) => { - return { - name: field.name, - isScript: !!field.scripted, - lang: field.lang, - script: field.script, - // id is a special case - it doesn't show up in the meta field list, - // but as it's not part of source, it has to be handled separately. - isMeta: metaFields?.includes(field.name) || field.name === '_id', - runtimeField: !field.isMapped ? field.runtimeField : undefined, - }; + return buildField(field, metaFields); }); } +export function buildField(field: DataViewField, metaFields: string[]): Field { + return { + name: field.name, + isScript: !!field.scripted, + lang: field.lang, + script: field.script, + // id is a special case - it doesn't show up in the meta field list, + // but as it's not part of source, it has to be handled separately. + isMeta: metaFields?.includes(field.name) || field.name === '_id', + runtimeField: !field.isMapped ? field.runtimeField : undefined, + }; +} + function toQuery( timeFieldName: string | undefined, fromDate: string | undefined, diff --git a/packages/kbn-unified-field-list/src/services/field_existing/load_field_existing.ts b/packages/kbn-unified-field-list/src/services/field_existing/load_field_existing.ts index 796062bc60559..590bc46eff573 100644 --- a/packages/kbn-unified-field-list/src/services/field_existing/load_field_existing.ts +++ b/packages/kbn-unified-field-list/src/services/field_existing/load_field_existing.ts @@ -9,7 +9,7 @@ import { IUiSettingsClient } from '@kbn/core/public'; import { type DataPublicPluginStart } from '@kbn/data-plugin/public'; import { UI_SETTINGS } from '@kbn/data-service/src/constants'; -import type { DataView, DataViewsContract } from '@kbn/data-views-plugin/common'; +import type { DataView, DataViewsContract, FieldSpec } from '@kbn/data-views-plugin/common'; import { lastValueFrom } from 'rxjs'; import { fetchFieldExistence } from './field_existing_utils'; @@ -27,6 +27,7 @@ interface FetchFieldExistenceParams { export type LoadFieldExistingHandler = (params: FetchFieldExistenceParams) => Promise<{ existingFieldNames: string[]; indexPatternTitle: string; + newFields?: FieldSpec[]; }>; export const loadFieldExisting: LoadFieldExistingHandler = async ({ diff --git a/src/plugins/unified_search/public/dataview_picker/change_dataview.tsx b/src/plugins/unified_search/public/dataview_picker/change_dataview.tsx index 9076bcb37c7df..2d857de608834 100644 --- a/src/plugins/unified_search/public/dataview_picker/change_dataview.tsx +++ b/src/plugins/unified_search/public/dataview_picker/change_dataview.tsx @@ -307,12 +307,6 @@ export function ChangeDataView({ isTextBasedLangSelected={isTextBasedLangSelected} setPopoverIsOpen={setPopoverIsOpen} onChangeDataView={async (newId) => { - try { - // refreshing the field list - await dataViews.get(newId, false, true); - } catch (e) { - // - } setSelectedDataViewId(newId); setPopoverIsOpen(false); if (isTextBasedLangSelected && !isTextLangTransitionModalDismissed) { diff --git a/test/functional/apps/discover/group4/_field_list_new_fields.ts b/test/functional/apps/discover/group4/_field_list_new_fields.ts new file mode 100644 index 0000000000000..3c24bcf613ae4 --- /dev/null +++ b/test/functional/apps/discover/group4/_field_list_new_fields.ts @@ -0,0 +1,86 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may 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 expect from '@kbn/expect'; +import { FtrProviderContext } from '../ftr_provider_context'; + +export default function ({ getService, getPageObjects }: FtrProviderContext) { + const esArchiver = getService('esArchiver'); + const kibanaServer = getService('kibanaServer'); + const security = getService('security'); + const es = getService('es'); + const retry = getService('retry'); + const queryBar = getService('queryBar'); + const PageObjects = getPageObjects(['common', 'discover', 'timePicker', 'unifiedFieldList']); + + describe('Field list new fields in background handling', function () { + before(async () => { + await security.testUser.setRoles(['kibana_admin', 'test_logstash_reader']); + await kibanaServer.importExport.load('test/functional/fixtures/kbn_archiver/discover.json'); + await esArchiver.loadIfNeeded('test/functional/fixtures/es_archiver/logstash_functional'); + + await PageObjects.common.navigateToApp('discover'); + await PageObjects.timePicker.setCommonlyUsedTime('This_week'); + }); + + after(async () => { + await kibanaServer.savedObjects.cleanStandardList(); + await esArchiver.unload('x-pack/test/functional/es_archives/logstash_functional'); + await es.transport.request({ + path: '/my-index-000001', + method: 'DELETE', + }); + }); + + it('Check that new ingested fields are added to the available fields section', async function () { + const initialPattern = 'my-index-'; + await es.transport.request({ + path: '/my-index-000001/_doc', + method: 'POST', + body: { + '@timestamp': new Date().toISOString(), + a: 'GET /search HTTP/1.1 200 1070000', + }, + }); + + await PageObjects.discover.createAdHocDataView(initialPattern, true); + + await retry.waitFor('current data view to get updated', async () => { + return (await PageObjects.discover.getCurrentlySelectedDataView()) === `${initialPattern}*`; + }); + await PageObjects.unifiedFieldList.waitUntilSidebarHasLoaded(); + + expect(await PageObjects.discover.getHitCountInt()).to.be(1); + expect(await PageObjects.unifiedFieldList.getSidebarSectionFieldNames('available')).to.eql([ + '@timestamp', + 'a', + ]); + + await es.transport.request({ + path: '/my-index-000001/_doc', + method: 'POST', + body: { + '@timestamp': new Date().toISOString(), + b: 'GET /search HTTP/1.1 200 1070000', + }, + }); + + await retry.waitFor('the new record was found', async () => { + await queryBar.submitQuery(); + await PageObjects.unifiedFieldList.waitUntilSidebarHasLoaded(); + return (await PageObjects.discover.getHitCountInt()) === 2; + }); + + expect(await PageObjects.unifiedFieldList.getSidebarSectionFieldNames('available')).to.eql([ + '@timestamp', + 'a', + 'b', + ]); + }); + }); +} diff --git a/test/functional/apps/discover/group4/index.ts b/test/functional/apps/discover/group4/index.ts index 1aab3db2bfc43..656a116551db8 100644 --- a/test/functional/apps/discover/group4/index.ts +++ b/test/functional/apps/discover/group4/index.ts @@ -33,5 +33,6 @@ export default function ({ getService, loadTestFile }: FtrProviderContext) { loadTestFile(require.resolve('./_context_encoded_url_params')); loadTestFile(require.resolve('./_hide_announcements')); loadTestFile(require.resolve('./_data_view_edit')); + loadTestFile(require.resolve('./_field_list_new_fields')); }); } diff --git a/x-pack/plugins/lens/public/data_views_service/loader.test.ts b/x-pack/plugins/lens/public/data_views_service/loader.test.ts index f91d236986b11..4c648a7782896 100644 --- a/x-pack/plugins/lens/public/data_views_service/loader.test.ts +++ b/x-pack/plugins/lens/public/data_views_service/loader.test.ts @@ -5,8 +5,13 @@ * 2.0. */ -import { DataViewsContract } from '@kbn/data-views-plugin/public'; -import { ensureIndexPattern, loadIndexPatternRefs, loadIndexPatterns } from './loader'; +import { DataViewsContract, DataViewField } from '@kbn/data-views-plugin/public'; +import { + ensureIndexPattern, + loadIndexPatternRefs, + loadIndexPatterns, + buildIndexPatternField, +} from './loader'; import { sampleIndexPatterns, mockDataViewsService } from './mocks'; import { documentField } from '../datasources/form_based/document_field'; @@ -313,4 +318,32 @@ describe('loader', () => { expect(onError).not.toHaveBeenCalled(); }); }); + + describe('buildIndexPatternField', () => { + it('should return a field with the correct name and derived parameters', async () => { + const field = buildIndexPatternField({ + name: 'foo', + displayName: 'Foo', + type: 'string', + aggregatable: true, + searchable: true, + } as DataViewField); + expect(field.name).toEqual('foo'); + expect(field.meta).toEqual(false); + expect(field.runtime).toEqual(false); + }); + it('should return return the right meta field value', async () => { + const field = buildIndexPatternField( + { + name: 'meta', + displayName: 'Meta', + type: 'string', + aggregatable: true, + searchable: true, + } as DataViewField, + new Set(['meta']) + ); + expect(field.meta).toEqual(true); + }); + }); }); diff --git a/x-pack/plugins/lens/public/data_views_service/loader.ts b/x-pack/plugins/lens/public/data_views_service/loader.ts index 784c97d832e34..8a52146991b8d 100644 --- a/x-pack/plugins/lens/public/data_views_service/loader.ts +++ b/x-pack/plugins/lens/public/data_views_service/loader.ts @@ -6,7 +6,12 @@ */ import { isFieldLensCompatible } from '@kbn/visualization-ui-components'; -import type { DataViewsContract, DataView, DataViewSpec } from '@kbn/data-views-plugin/public'; +import { + DataViewsContract, + DataView, + DataViewSpec, + DataViewField, +} from '@kbn/data-views-plugin/public'; import { keyBy } from 'lodash'; import { IndexPattern, IndexPatternField, IndexPatternMap, IndexPatternRef } from '../types'; import { documentField } from '../datasources/form_based/document_field'; @@ -32,46 +37,7 @@ export function convertDataViewIntoLensIndexPattern( const metaKeys = new Set(dataView.metaFields); const newFields = dataView.fields .filter(isFieldLensCompatible) - .map((field): IndexPatternField => { - // Convert the getters on the index pattern service into plain JSON - const base = { - name: field.name, - displayName: field.displayName, - type: field.type, - aggregatable: field.aggregatable, - filterable: field.filterable, - searchable: field.searchable, - meta: metaKeys.has(field.name), - esTypes: field.esTypes, - scripted: field.scripted, - isMapped: field.isMapped, - customLabel: field.customLabel, - runtimeField: field.runtimeField, - runtime: Boolean(field.runtimeField), - timeSeriesDimension: field.timeSeriesDimension, - timeSeriesMetric: field.timeSeriesMetric, - timeSeriesRollup: field.isRolledUpField, - partiallyApplicableFunctions: field.isRolledUpField - ? { - percentile: true, - percentile_rank: true, - median: true, - last_value: true, - unique_count: true, - standard_deviation: true, - } - : undefined, - }; - - // Simplifies tests by hiding optional properties instead of undefined - return base.scripted - ? { - ...base, - lang: field.lang, - script: field.script, - } - : base; - }) + .map((field) => buildIndexPatternField(field, metaKeys)) .concat(documentField); const { typeMeta, title, name, timeFieldName, fieldFormatMap } = dataView; @@ -113,6 +79,51 @@ export function convertDataViewIntoLensIndexPattern( }; } +export function buildIndexPatternField( + field: DataViewField, + metaKeys?: Set +): IndexPatternField { + const meta = metaKeys ? metaKeys.has(field.name) : false; + // Convert the getters on the index pattern service into plain JSON + const base = { + name: field.name, + displayName: field.displayName, + type: field.type, + aggregatable: field.aggregatable, + filterable: field.filterable, + searchable: field.searchable, + meta, + esTypes: field.esTypes, + scripted: field.scripted, + isMapped: field.isMapped, + customLabel: field.customLabel, + runtimeField: field.runtimeField, + runtime: Boolean(field.runtimeField), + timeSeriesDimension: field.timeSeriesDimension, + timeSeriesMetric: field.timeSeriesMetric, + timeSeriesRollup: field.isRolledUpField, + partiallyApplicableFunctions: field.isRolledUpField + ? { + percentile: true, + percentile_rank: true, + median: true, + last_value: true, + unique_count: true, + standard_deviation: true, + } + : undefined, + }; + + // Simplifies tests by hiding optional properties instead of undefined + return base.scripted + ? { + ...base, + lang: field.lang, + script: field.script, + } + : base; +} + export async function loadIndexPatternRefs( dataViews: MinimalDataViewsContract ): Promise { diff --git a/x-pack/plugins/lens/public/datasources/form_based/datapanel.tsx b/x-pack/plugins/lens/public/datasources/form_based/datapanel.tsx index 53a26693b7a7a..5d7e928c95594 100644 --- a/x-pack/plugins/lens/public/datasources/form_based/datapanel.tsx +++ b/x-pack/plugins/lens/public/datasources/form_based/datapanel.tsx @@ -13,7 +13,7 @@ import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n-react'; import type { CoreStart } from '@kbn/core/public'; import type { DataPublicPluginStart } from '@kbn/data-plugin/public'; -import { type DataView } from '@kbn/data-plugin/common'; +import { type DataView, DataViewField, FieldSpec } from '@kbn/data-plugin/common'; import type { FieldFormatsStart } from '@kbn/field-formats-plugin/public'; import { IndexPatternFieldEditorStart } from '@kbn/data-view-field-editor-plugin/public'; import { VISUALIZE_GEO_FIELD_TRIGGER } from '@kbn/ui-actions-plugin/public'; @@ -28,6 +28,9 @@ import { useGroupedFields, } from '@kbn/unified-field-list'; import { ChartsPluginSetup } from '@kbn/charts-plugin/public'; +import useLatest from 'react-use/lib/useLatest'; +import { isFieldLensCompatible } from '@kbn/visualization-ui-components'; +import { buildIndexPatternField } from '../../data_views_service/loader'; import type { DatasourceDataPanelProps, FramePublicAPI, @@ -249,18 +252,20 @@ export const InnerFormBasedDataPanel = function InnerFormBasedDataPanel({ } }, []); - const { fieldListFiltersProps, fieldListGroupedProps } = useGroupedFields({ - dataViewId: currentIndexPatternId, - allFields, - services: { - dataViews, - core, - }, - isAffectedByGlobalFilter: Boolean(filters.length), - onSupportedFieldFilter, - onSelectedFieldFilter, - onOverrideFieldGroupDetails, - }); + const { fieldListFiltersProps, fieldListGroupedProps, hasNewFields } = + useGroupedFields({ + dataViewId: currentIndexPatternId, + allFields, + services: { + dataViews, + core, + }, + isAffectedByGlobalFilter: Boolean(filters.length), + onSupportedFieldFilter, + onSelectedFieldFilter, + onOverrideFieldGroupDetails, + getNewFieldsBySpec, + }); const closeFieldEditor = useRef<() => void | undefined>(); @@ -273,7 +278,7 @@ export const InnerFormBasedDataPanel = function InnerFormBasedDataPanel({ }; }, []); - const refreshFieldList = useCallback(async () => { + const refreshFieldList = useLatest(async () => { if (currentIndexPattern) { const newlyMappedIndexPattern = await indexPatternService.loadIndexPatterns({ patterns: [currentIndexPattern.id], @@ -289,13 +294,13 @@ export const InnerFormBasedDataPanel = function InnerFormBasedDataPanel({ } // start a new session so all charts are refreshed data.search.session.start(); - }, [ - indexPatternService, - currentIndexPattern, - onIndexPatternRefresh, - frame.dataViews.indexPatterns, - data.search.session, - ]); + }); + + useEffect(() => { + if (hasNewFields) { + refreshFieldList.current(); + } + }, [hasNewFields, refreshFieldList]); const editField = useMemo( () => @@ -309,7 +314,7 @@ export const InnerFormBasedDataPanel = function InnerFormBasedDataPanel({ fieldName, onSave: () => { if (indexPatternInstance.isPersisted()) { - refreshFieldList(); + refreshFieldList.current(); refetchFieldsExistenceInfo(indexPatternInstance.id); } else { indexPatternService.replaceDataViewId(indexPatternInstance); @@ -341,7 +346,7 @@ export const InnerFormBasedDataPanel = function InnerFormBasedDataPanel({ fieldName, onDelete: () => { if (indexPatternInstance.isPersisted()) { - refreshFieldList(); + refreshFieldList.current(); refetchFieldsExistenceInfo(indexPatternInstance.id); } else { indexPatternService.replaceDataViewId(indexPatternInstance); @@ -408,4 +413,16 @@ export const InnerFormBasedDataPanel = function InnerFormBasedDataPanel({ ); }; +function getNewFieldsBySpec(spec: FieldSpec[], dataView: DataView | null) { + const metaKeys = dataView ? new Set(dataView.metaFields) : undefined; + + return spec.reduce((result: IndexPatternField[], fieldSpec: FieldSpec) => { + const field = new DataViewField(fieldSpec); + if (isFieldLensCompatible(field)) { + result.push(buildIndexPatternField(field, metaKeys)); + } + return result; + }, []); +} + export const MemoizedDataPanel = memo(InnerFormBasedDataPanel); diff --git a/x-pack/test/functional/apps/lens/group2/fields_list.ts b/x-pack/test/functional/apps/lens/group2/fields_list.ts index 4e1f771d0b042..79baafe6100a6 100644 --- a/x-pack/test/functional/apps/lens/group2/fields_list.ts +++ b/x-pack/test/functional/apps/lens/group2/fields_list.ts @@ -9,13 +9,15 @@ import expect from '@kbn/expect'; import { FtrProviderContext } from '../../../ftr_provider_context'; export default function ({ getService, getPageObjects }: FtrProviderContext) { - const PageObjects = getPageObjects(['visualize', 'lens', 'common', 'header']); + const PageObjects = getPageObjects(['visualize', 'lens', 'common', 'header', 'timePicker']); const find = getService('find'); const log = getService('log'); const testSubjects = getService('testSubjects'); const filterBar = getService('filterBar'); const fieldEditor = getService('fieldEditor'); const retry = getService('retry'); + const es = getService('es'); + const queryBar = getService('queryBar'); describe('lens fields list tests', () => { for (const datasourceType of ['form-based', 'ad-hoc', 'ad-hoc-no-timefield']) { @@ -48,7 +50,6 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await PageObjects.header.waitUntilLoadingHasFinished(); }); }); - it('should show all fields as available', async () => { expect( await (await testSubjects.find('lnsIndexPatternAvailableFields-count')).getVisibleText() @@ -231,5 +232,50 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { } }); } + + describe(`update field list test`, () => { + before(async () => { + await es.transport.request({ + path: '/field-update-test/_doc', + method: 'POST', + body: { + '@timestamp': new Date().toISOString(), + oldField: 10, + }, + }); + await PageObjects.visualize.navigateToNewVisualization(); + await PageObjects.visualize.clickVisType('lens'); + await PageObjects.timePicker.setCommonlyUsedTime('This_week'); + + await PageObjects.lens.createAdHocDataView('field-update-test', true); + await retry.try(async () => { + const selectedPattern = await PageObjects.lens.getDataPanelIndexPattern(); + expect(selectedPattern).to.eql('field-update-test*'); + }); + }); + after(async () => { + await es.transport.request({ + path: '/field-update-test', + method: 'DELETE', + }); + }); + + it('should show new fields Available fields', async () => { + await es.transport.request({ + path: '/field-update-test/_doc', + method: 'POST', + body: { + '@timestamp': new Date().toISOString(), + oldField: 10, + newField: 20, + }, + }); + await PageObjects.lens.waitForField('oldField'); + await queryBar.setQuery('oldField: 10'); + await queryBar.submitQuery(); + await PageObjects.header.waitUntilLoadingHasFinished(); + await PageObjects.lens.waitForField('newField'); + }); + }); }); } From a100cbb895cf5a5edff46de6b9873f551b9dbb91 Mon Sep 17 00:00:00 2001 From: Jan Monschke Date: Tue, 9 Jan 2024 22:47:50 +0100 Subject: [PATCH 15/20] [SecuritySolution] Fix flaky timeline creation tests (role-based issues) (#173413) --- .../alerts/ransomware_detection.cy.ts | 4 +- .../investigations/timelines/creation.cy.ts | 82 +++++++++---------- .../cypress/screens/timeline.ts | 4 +- .../cypress/tasks/security_main.ts | 16 +++- .../cypress/tasks/timeline.ts | 11 +-- .../cypress/tasks/timelines.ts | 4 - 6 files changed, 59 insertions(+), 62 deletions(-) diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/ransomware_detection.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/ransomware_detection.cy.ts index 3d51fb2f595be..c8da8308b76a4 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/ransomware_detection.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/alerts/ransomware_detection.cy.ts @@ -13,7 +13,7 @@ import { ALERTS_URL, TIMELINES_URL } from '../../../urls/navigation'; import { ALERTS_HISTOGRAM_SERIES, ALERT_RULE_NAME, MESSAGE } from '../../../screens/alerts'; import { TIMELINE_QUERY, TIMELINE_VIEW_IN_ANALYZER } from '../../../screens/timeline'; import { selectAlertsHistogram } from '../../../tasks/alerts'; -import { createTimeline } from '../../../tasks/timelines'; +import { openTimelineUsingToggle } from '../../../tasks/security_main'; import { deleteTimelines } from '../../../tasks/api_calls/common'; describe('Ransomware Detection Alerts', { tags: ['@ess', '@serverless'] }, () => { @@ -53,10 +53,10 @@ describe('Ransomware Detection Alerts', { tags: ['@ess', '@serverless'] }, () => deleteTimelines(); login(); visitWithTimeRange(TIMELINES_URL); - createTimeline(); }); it('should show ransomware entries in timelines table', () => { + openTimelineUsingToggle(); cy.get(TIMELINE_QUERY).type('event.code: "ransomware"{enter}'); // Wait for grid to load, it should have an analyzer icon diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/creation.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/creation.cy.ts index d048eb2155ef6..fe47cf3a538cb 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/creation.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/creation.cy.ts @@ -45,18 +45,17 @@ import { addNameToTimelineAndSave, addNameToTimelineAndSaveAsNew, } from '../../../tasks/timeline'; -import { createTimeline } from '../../../tasks/timelines'; +import { waitForTimelinesPanelToBeLoaded } from '../../../tasks/timelines'; import { OVERVIEW_URL, TIMELINE_TEMPLATES_URL, TIMELINES_URL } from '../../../urls/navigation'; -// FLAKY: https://github.com/elastic/kibana/issues/173339 -describe.skip('Timelines', { tags: ['@ess', '@serverless'] }, (): void => { +describe('Timelines', { tags: ['@ess', '@serverless'] }, (): void => { beforeEach(() => { - login(); deleteTimelines(); }); - it('creates a timeline from a template and should have the same query and open the timeline modal', () => { + it('should create a timeline from a template and should have the same query and open the timeline modal', () => { + login(); createTimelineTemplate(getTimeline()); visit(TIMELINE_TEMPLATES_URL); selectCustomTemplates(); @@ -64,46 +63,35 @@ describe.skip('Timelines', { tags: ['@ess', '@serverless'] }, (): void => { clickingOnCreateTimelineFormTemplateBtn(); cy.get(TIMELINE_FLYOUT_WRAPPER).should('have.css', 'visibility', 'visible'); cy.get(TIMELINE_QUERY).should('have.text', getTimeline().query); - closeTimeline(); }); - describe('Toggle create timeline from "New" btn', () => { - context('Privileges: CRUD', () => { - beforeEach(() => { - login(); - visitWithTimeRange(OVERVIEW_URL); - }); - - it('toggle create timeline ', () => { - openTimelineUsingToggle(); - createNewTimeline(); - addNameAndDescriptionToTimeline(getTimeline()); - cy.get(TIMELINE_PANEL).should('be.visible'); - }); - }); - - context('Privileges: READ', () => { - beforeEach(() => { - login(ROLES.t1_analyst); - visitWithTimeRange(OVERVIEW_URL); - }); - - it('should not be able to create/update timeline ', () => { - openTimelineUsingToggle(); - createNewTimeline(); - cy.get(TIMELINE_PANEL).should('be.visible'); - cy.get(SAVE_TIMELINE_ACTION_BTN).should('be.disabled'); - cy.get(SAVE_TIMELINE_ACTION_BTN).first().realHover(); - cy.get(SAVE_TIMELINE_TOOLTIP).should('be.visible'); - cy.get(SAVE_TIMELINE_TOOLTIP).should( - 'have.text', - 'You can use Timeline to investigate events, but you do not have the required permissions to save timelines for future use. If you need to save timelines, contact your Kibana administrator.' - ); - }); - }); + it('should be able to create timeline with crud privileges', () => { + login(); + visitWithTimeRange(OVERVIEW_URL); + openTimelineUsingToggle(); + createNewTimeline(); + addNameAndDescriptionToTimeline(getTimeline()); + cy.get(TIMELINE_PANEL).should('be.visible'); + }); + + it('should not be able to create/update timeline with only read privileges', () => { + login(ROLES.t1_analyst); + visitWithTimeRange(TIMELINES_URL); + waitForTimelinesPanelToBeLoaded(); + openTimelineUsingToggle(); + createNewTimeline(); + cy.get(TIMELINE_PANEL).should('be.visible'); + cy.get(SAVE_TIMELINE_ACTION_BTN).should('be.disabled'); + cy.get(SAVE_TIMELINE_ACTION_BTN).first().realHover(); + cy.get(SAVE_TIMELINE_TOOLTIP).should('be.visible'); + cy.get(SAVE_TIMELINE_TOOLTIP).should( + 'have.text', + 'You can use Timeline to investigate events, but you do not have the required permissions to save timelines for future use. If you need to save timelines, contact your Kibana administrator.' + ); }); - it('creates a timeline by clicking untitled timeline from bottom bar', () => { + it('should create a timeline by clicking untitled timeline from bottom bar', () => { + login(); visitWithTimeRange(OVERVIEW_URL); openTimelineUsingToggle(); addNameAndDescriptionToTimeline(getTimeline()); @@ -126,14 +114,17 @@ describe.skip('Timelines', { tags: ['@ess', '@serverless'] }, (): void => { .should('have.text', getTimeline().notes); }); - it('shows the different timeline states', () => { + it('should show the different timeline states', () => { + login(); visitWithTimeRange(TIMELINES_URL); - createTimeline(); + openTimelineUsingToggle(); // Unsaved cy.get(TIMELINE_PANEL).should('be.visible'); cy.get(TIMELINE_STATUS).should('be.visible'); - cy.get(TIMELINE_STATUS).should('have.text', 'Unsaved'); + cy.get(TIMELINE_STATUS) + .invoke('text') + .should('match', /^Unsaved/); addNameToTimelineAndSave('Test'); @@ -155,10 +146,11 @@ describe.skip('Timelines', { tags: ['@ess', '@serverless'] }, (): void => { }); it('should save timelines as new', () => { + login(); visitWithTimeRange(TIMELINES_URL); cy.get(ROWS).should('have.length', '0'); - createTimeline(); + openTimelineUsingToggle(); addNameToTimelineAndSave('First'); // Offsetting the extra save that is happening in the background diff --git a/x-pack/test/security_solution_cypress/cypress/screens/timeline.ts b/x-pack/test/security_solution_cypress/cypress/screens/timeline.ts index 2794a111e94c2..c6d6b14fcdfd1 100644 --- a/x-pack/test/security_solution_cypress/cypress/screens/timeline.ts +++ b/x-pack/test/security_solution_cypress/cypress/screens/timeline.ts @@ -30,8 +30,6 @@ export const COMBO_BOX_INPUT = '[data-test-subj="comboBoxInput"]'; export const CREATE_NEW_TIMELINE = '[data-test-subj="timeline-new"]'; -export const CREATE_NEW_TIMELINE_WITH_BORDER = '[data-test-subj="timeline-new-with-border"]'; - export const CREATE_NEW_TIMELINE_TEMPLATE = '[data-test-subj="template-timeline-new"]'; export const DATA_PROVIDERS = '.field-value'; @@ -218,6 +216,8 @@ export const TIMELINE_EXIT_FULL_SCREEN_BUTTON = '[data-test-subj="exit-full-scre export const TIMELINE_FLYOUT_WRAPPER = '[data-test-subj="flyout-pane"]'; +export const TIMELINE_WRAPPER = '[data-test-subj="timeline-wrapper"]'; + export const TIMELINE_FULL_SCREEN_BUTTON = '[data-test-subj="full-screen-active"]'; export const TIMELINE_PROGRESS_BAR = '[data-test-subj="progress-bar"]'; diff --git a/x-pack/test/security_solution_cypress/cypress/tasks/security_main.ts b/x-pack/test/security_solution_cypress/cypress/tasks/security_main.ts index 15c171676c958..5b034b0ae4b0e 100644 --- a/x-pack/test/security_solution_cypress/cypress/tasks/security_main.ts +++ b/x-pack/test/security_solution_cypress/cypress/tasks/security_main.ts @@ -5,11 +5,23 @@ * 2.0. */ +import { recurse } from 'cypress-recurse'; import { CLOSE_TIMELINE_BUTTON, TIMELINE_BOTTOM_BAR_TOGGLE_BUTTON } from '../screens/security_main'; -import { TIMELINE_EXIT_FULL_SCREEN_BUTTON, TIMELINE_FULL_SCREEN_BUTTON } from '../screens/timeline'; +import { + TIMELINE_EXIT_FULL_SCREEN_BUTTON, + TIMELINE_FULL_SCREEN_BUTTON, + TIMELINE_WRAPPER, +} from '../screens/timeline'; export const openTimelineUsingToggle = () => { - cy.get(TIMELINE_BOTTOM_BAR_TOGGLE_BUTTON).click(); + recurse( + () => { + cy.get(TIMELINE_BOTTOM_BAR_TOGGLE_BUTTON).click(); + return cy.get(TIMELINE_WRAPPER); + }, + // Retry if somehow the timeline wrapper is still hidden + ($timelineWrapper) => !$timelineWrapper.hasClass('timeline-wrapper--hidden') + ); }; export const closeTimelineUsingCloseButton = () => { diff --git a/x-pack/test/security_solution_cypress/cypress/tasks/timeline.ts b/x-pack/test/security_solution_cypress/cypress/tasks/timeline.ts index d9db1f7debcfa..767123c9875b6 100644 --- a/x-pack/test/security_solution_cypress/cypress/tasks/timeline.ts +++ b/x-pack/test/security_solution_cypress/cypress/tasks/timeline.ts @@ -180,9 +180,6 @@ export const addNotesToTimeline = (notes: string) => { cy.get(`${NOTES_TAB_BUTTON} .euiBadge`).should('have.text', `${notesCount + 1}`); }); - - goToQueryTab(); - goToNotesTab(); }; export const addEqlToTimeline = (eql: string) => { @@ -303,7 +300,7 @@ export const clickIdToggleField = () => { }; export const closeTimeline = () => { - cy.get(CLOSE_TIMELINE_BTN).filter(':visible').click(); + cy.get(CLOSE_TIMELINE_BTN).click(); cy.get(QUERY_TAB_BUTTON).should('not.be.visible'); }; @@ -409,7 +406,7 @@ export const openActiveTimeline = () => { }; export const pinFirstEvent = (): Cypress.Chainable> => { - return cy.get(PIN_EVENT).first().click({ force: true }); + return cy.get(PIN_EVENT).first().click(); }; export const populateTimeline = () => { @@ -470,11 +467,11 @@ export const refreshTimelinesUntilTimeLinePresent = ( }; export const clickingOnCreateTimelineFormTemplateBtn = () => { - cy.get(TIMELINE_CREATE_TIMELINE_FROM_TEMPLATE_BTN).click({ force: true }); + cy.get(TIMELINE_CREATE_TIMELINE_FROM_TEMPLATE_BTN).click(); }; export const clickingOnCreateTemplateFromTimelineBtn = () => { - cy.get(TIMELINE_CREATE_TEMPLATE_FROM_TIMELINE_BTN).click({ force: true }); + cy.get(TIMELINE_CREATE_TEMPLATE_FROM_TIMELINE_BTN).click(); }; export const expandEventAction = () => { diff --git a/x-pack/test/security_solution_cypress/cypress/tasks/timelines.ts b/x-pack/test/security_solution_cypress/cypress/tasks/timelines.ts index 607b1d3e67978..338017829e9f0 100644 --- a/x-pack/test/security_solution_cypress/cypress/tasks/timelines.ts +++ b/x-pack/test/security_solution_cypress/cypress/tasks/timelines.ts @@ -21,7 +21,6 @@ import { } from '../screens/timelines'; import { SELECT_ALL_CHECKBOX } from '../screens/shared'; import { - CREATE_NEW_TIMELINE_WITH_BORDER, TIMELINE_COLLAPSED_ITEMS_BTN, TIMELINE_CREATE_TIMELINE_FROM_TEMPLATE_BTN, } from '../screens/timeline'; @@ -68,9 +67,6 @@ export const exportSelectedTimelines = () => { cy.get(EXPORT_TIMELINE_ACTION).click(); }; -export const createTimeline = () => - cy.get(CREATE_NEW_TIMELINE_WITH_BORDER).should('be.visible').click(); - export const createTimelineFromFirstTemplateInList = () => { cy.get(TIMELINE_COLLAPSED_ITEMS_BTN).first().click(); cy.get(TIMELINE_CREATE_TIMELINE_FROM_TEMPLATE_BTN).click(); From 9d32f889683cb6bc099d561d94e02af2feaf0d10 Mon Sep 17 00:00:00 2001 From: Zacqary Adam Xeper Date: Tue, 9 Jan 2024 17:17:13 -0600 Subject: [PATCH 16/20] [RAM] Fix rule log aggregations when filtering >1k logs (#172228) ## Summary Fixes #171409 This fixes weird behavior when attempting to filter more than 1000 rule execution logs. The execution log aggregator had two problems: - It had a max bucket limit of 1000, while the KPI agg had a max bucket limit of 10000, leading to inconsistent results - For pagination, it reported the total number of logs by using a cardinality aggregator, which wasn't subject to any bucket limit at all The endpoint responds with a `total` (the cardinality) and an array of `data` (a paginated slice of the aggregated logs). The way the data table UI works is that it takes the `total` value, caps it at 1000, and then generates that many blank rows to fill with whatever's in the `data` array. So as seen in the issue, we could easily run into a situation where: 1. User enters a filter query that last appeared more than 1000 logs ago 2. The cardinality agg accurately reports the number of logs that should be fetched, and generates enough blank rows for these logs 3. The actual execution log agg hits the 1000 bucket limit, and returns an empty `data` array This PR fixes this by using a bucket sum aggregation to determine the data table's `total` instead of a cardinality aggregation. It also ups the bucket limit from 1000 to 10000, to match the bucket limit from the summary KPI endpoint. This prevents a situation where: 1. User enters a filter query that last appeared in <1000 logs, but more than 1000 logs ago 2. Summary KPI widget, with a bucket limit of 10000, accurately displays a count of the <1000 logs this query matches 3. The data table is empty because the execution log bucket limit tops out at 1000 ### Checklist - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios --------- Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Co-authored-by: Xavier Mouligneau --- .../actions_client/actions_client.test.ts | 9 + .../lib/get_execution_log_aggregation.test.ts | 31 +- .../lib/get_execution_log_aggregation.test.ts | 783 ++++++++++++++---- .../lib/get_execution_log_aggregation.ts | 74 +- .../tests/get_execution_log.test.ts | 8 +- .../server/es/cluster_client_adapter.test.ts | 21 + .../server/es/cluster_client_adapter.ts | 11 +- .../hooks/use_load_rule_event_logs.ts | 22 +- .../rule_event_log_list_kpi.test.tsx | 47 ++ .../components/rule_event_log_list_kpi.tsx | 3 + .../rule_event_log_list_table.test.tsx | 40 +- .../components/rule_event_log_list_table.tsx | 22 +- 12 files changed, 876 insertions(+), 195 deletions(-) diff --git a/x-pack/plugins/actions/server/actions_client/actions_client.test.ts b/x-pack/plugins/actions/server/actions_client/actions_client.test.ts index 02c647f17664d..b52ce10ab8c4a 100644 --- a/x-pack/plugins/actions/server/actions_client/actions_client.test.ts +++ b/x-pack/plugins/actions/server/actions_client/actions_client.test.ts @@ -51,6 +51,7 @@ import { getOAuthClientCredentialsAccessToken } from '../lib/get_oauth_client_cr import { OAuthParams } from '../routes/get_oauth_access_token'; import { eventLogClientMock } from '@kbn/event-log-plugin/server/event_log_client.mock'; import { GetGlobalExecutionKPIParams, GetGlobalExecutionLogParams } from '../../common'; +import { estypes } from '@elastic/elasticsearch'; jest.mock('@kbn/core-saved-objects-utils-server', () => { const actual = jest.requireActual('@kbn/core-saved-objects-utils-server'); @@ -3419,6 +3420,10 @@ describe('getGlobalExecutionLogWithAuth()', () => { executionUuidCardinality: { doc_count: 5, executionUuidCardinality: { value: 5 } }, }, }, + hits: { + total: { value: 5, relation: 'eq' }, + hits: [], + } as estypes.SearchHitsMetadata, }; describe('authorization', () => { test('ensures user is authorised to access logs', async () => { @@ -3474,6 +3479,10 @@ describe('getGlobalExecutionKpiWithAuth()', () => { }, }, }, + hits: { + total: { value: 5, relation: 'eq' }, + hits: [], + } as estypes.SearchHitsMetadata, }; describe('authorization', () => { test('ensures user is authorised to access kpi', async () => { diff --git a/x-pack/plugins/actions/server/lib/get_execution_log_aggregation.test.ts b/x-pack/plugins/actions/server/lib/get_execution_log_aggregation.test.ts index f85d51b5ae2c3..0d889e53ca8c2 100644 --- a/x-pack/plugins/actions/server/lib/get_execution_log_aggregation.test.ts +++ b/x-pack/plugins/actions/server/lib/get_execution_log_aggregation.test.ts @@ -5,6 +5,7 @@ * 2.0. */ +import { estypes } from '@elastic/elasticsearch'; import { fromKueryExpression } from '@kbn/es-query'; import { getExecutionLogAggregation, @@ -485,7 +486,15 @@ describe('getExecutionLogAggregation', () => { describe('formatExecutionLogResult', () => { test('should return empty results if aggregations are undefined', () => { - expect(formatExecutionLogResult({ aggregations: undefined })).toEqual({ + expect( + formatExecutionLogResult({ + aggregations: undefined, + hits: { + total: { value: 0, relation: 'eq' }, + hits: [], + } as estypes.SearchHitsMetadata, + }) + ).toEqual({ total: 0, data: [], }); @@ -494,6 +503,10 @@ describe('formatExecutionLogResult', () => { expect( formatExecutionLogResult({ aggregations: { executionLogAgg: undefined as unknown as ExecutionUuidAggResult }, + hits: { + total: { value: 5, relation: 'eq' }, + hits: [], + } as estypes.SearchHitsMetadata, }) ).toEqual({ total: 0, @@ -554,6 +567,10 @@ describe('formatExecutionLogResult', () => { executionUuidCardinality: { doc_count: 1, executionUuidCardinality: { value: 1 } }, }, }, + hits: { + total: { value: 5, relation: 'eq' }, + hits: [], + } as estypes.SearchHitsMetadata, }; expect(formatExecutionLogResult(results)).toEqual({ data: [ @@ -675,6 +692,10 @@ describe('formatExecutionLogResult', () => { executionUuidCardinality: { doc_count: 2, executionUuidCardinality: { value: 2 } }, }, }, + hits: { + total: { value: 10, relation: 'eq' }, + hits: [], + } as estypes.SearchHitsMetadata, }; expect(formatExecutionLogResult(results)).toEqual({ data: [ @@ -918,6 +939,10 @@ describe('formatExecutionKPIAggBuckets', () => { expect( formatExecutionKPIResult({ aggregations: undefined, + hits: { + total: { value: 0, relation: 'eq' }, + hits: [], + } as estypes.SearchHitsMetadata, }) ).toEqual({ failure: 0, success: 0, unknown: 0, warning: 0 }); }); @@ -951,6 +976,10 @@ describe('formatExecutionKPIAggBuckets', () => { }, }, }, + hits: { + total: { value: 21, relation: 'eq' }, + hits: [], + } as estypes.SearchHitsMetadata, }; expect(formatExecutionKPIResult(results)).toEqual({ diff --git a/x-pack/plugins/alerting/server/lib/get_execution_log_aggregation.test.ts b/x-pack/plugins/alerting/server/lib/get_execution_log_aggregation.test.ts index bb38fb7a98bfa..88263ff495b9a 100644 --- a/x-pack/plugins/alerting/server/lib/get_execution_log_aggregation.test.ts +++ b/x-pack/plugins/alerting/server/lib/get_execution_log_aggregation.test.ts @@ -5,6 +5,7 @@ * 2.0. */ +import { estypes } from '@elastic/elasticsearch'; import { fromKueryExpression } from '@kbn/es-query'; import { getNumExecutions, @@ -73,7 +74,7 @@ describe('getNumExecutions', () => { new Date('2020-12-02T00:00:00.000Z'), '1s' ) - ).toEqual(1000); + ).toEqual(10000); }); }); @@ -146,38 +147,48 @@ describe('getExecutionLogAggregation', () => { }, aggs: { executionUuidCardinality: { - aggs: { - executionUuidCardinality: { - cardinality: { field: 'kibana.alert.rule.execution.uuid' }, - }, + sum_bucket: { + buckets_path: 'executionUuidCardinalityBuckets>ruleExecution._count', }, - filter: { - bool: { - must: [ - { - bool: { - must: [ - { - match: { - 'event.action': 'execute', - }, - }, - { - match: { - 'event.provider': 'alerting', - }, + }, + executionUuidCardinalityBuckets: { + terms: { + field: 'kibana.alert.rule.execution.uuid', + size: 10000, + order: [{ 'ruleExecution>executeStartTime': 'desc' }], + }, + aggs: { + ruleExecution: { + filter: { + bool: { + must: [ + { + bool: { + must: [ + { + match: { + 'event.action': 'execute', + }, + }, + { + match: { + 'event.provider': 'alerting', + }, + }, + ], }, - ], - }, + }, + ], }, - ], + }, + aggs: { executeStartTime: { min: { field: 'event.start' } } }, }, }, }, executionUuid: { terms: { field: 'kibana.alert.rule.execution.uuid', - size: 1000, + size: 10000, order: [ { 'ruleExecution>executeStartTime': 'asc' }, { 'ruleExecution>executionDuration': 'desc' }, @@ -330,50 +341,60 @@ describe('getExecutionLogAggregation', () => { }, aggs: { executionUuidCardinality: { - aggs: { - executionUuidCardinality: { - cardinality: { field: 'kibana.alert.rule.execution.uuid' }, - }, + sum_bucket: { + buckets_path: 'executionUuidCardinalityBuckets>ruleExecution._count', + }, + }, + executionUuidCardinalityBuckets: { + terms: { + field: 'kibana.alert.rule.execution.uuid', + size: 10000, + order: [{ 'ruleExecution>executeStartTime': 'desc' }], }, - filter: { - bool: { + aggs: { + ruleExecution: { filter: { bool: { - minimum_should_match: 1, - should: [ + filter: { + bool: { + minimum_should_match: 1, + should: [ + { + match: { + test: 'test', + }, + }, + ], + }, + }, + must: [ { - match: { - test: 'test', + bool: { + must: [ + { + match: { + 'event.action': 'execute', + }, + }, + { + match: { + 'event.provider': 'alerting', + }, + }, + ], }, }, ], }, }, - must: [ - { - bool: { - must: [ - { - match: { - 'event.action': 'execute', - }, - }, - { - match: { - 'event.provider': 'alerting', - }, - }, - ], - }, - }, - ], + aggs: { executeStartTime: { min: { field: 'event.start' } } }, }, }, }, executionUuid: { terms: { field: 'kibana.alert.rule.execution.uuid', - size: 1000, + size: 10000, order: [ { 'ruleExecution>executeStartTime': 'asc' }, { 'ruleExecution>executionDuration': 'desc' }, @@ -538,50 +559,60 @@ describe('getExecutionLogAggregation', () => { }, aggs: { executionUuidCardinality: { - aggs: { - executionUuidCardinality: { - cardinality: { field: 'kibana.alert.rule.execution.uuid' }, - }, + sum_bucket: { + buckets_path: 'executionUuidCardinalityBuckets>ruleExecution._count', + }, + }, + executionUuidCardinalityBuckets: { + terms: { + field: 'kibana.alert.rule.execution.uuid', + size: 10000, + order: [{ 'ruleExecution>executeStartTime': 'desc' }], }, - filter: { - bool: { + aggs: { + ruleExecution: { filter: { bool: { - minimum_should_match: 1, - should: [ + filter: { + bool: { + minimum_should_match: 1, + should: [ + { + match: { + test: 'test', + }, + }, + ], + }, + }, + must: [ { - match: { - test: 'test', + bool: { + must: [ + { + match: { + 'event.action': 'execute', + }, + }, + { + match: { + 'event.provider': 'alerting', + }, + }, + ], }, }, ], }, }, - must: [ - { - bool: { - must: [ - { - match: { - 'event.action': 'execute', - }, - }, - { - match: { - 'event.provider': 'alerting', - }, - }, - ], - }, - }, - ], + aggs: { executeStartTime: { min: { field: 'event.start' } } }, }, }, }, executionUuid: { terms: { field: 'kibana.alert.rule.execution.uuid', - size: 1000, + size: 10000, order: [ { 'ruleExecution>executeStartTime': 'asc' }, { 'ruleExecution>executionDuration': 'desc' }, @@ -726,7 +757,12 @@ describe('getExecutionLogAggregation', () => { describe('formatExecutionLogResult', () => { test('should return empty results if aggregations are undefined', () => { - expect(formatExecutionLogResult({ aggregations: undefined })).toEqual({ + expect( + formatExecutionLogResult({ + aggregations: undefined, + hits: { total: { value: 0, relation: 'eq' }, hits: [] }, + }) + ).toEqual({ total: 0, data: [], }); @@ -735,6 +771,7 @@ describe('formatExecutionLogResult', () => { expect( formatExecutionLogResult({ aggregations: { excludeExecuteStart: undefined as unknown as ExecutionUuidAggResult }, + hits: { total: { value: 0, relation: 'eq' }, hits: [] }, }) ).toEqual({ total: 0, @@ -932,12 +969,14 @@ describe('formatExecutionLogResult', () => { ], }, executionUuidCardinality: { - executionUuidCardinality: { - value: 374, - }, + value: 374, }, }, }, + hits: { + total: { value: 875, relation: 'eq' }, + hits: [], + } as estypes.SearchHitsMetadata, }; expect(formatExecutionLogResult(results)).toEqual({ total: 374, @@ -1188,12 +1227,14 @@ describe('formatExecutionLogResult', () => { ], }, executionUuidCardinality: { - executionUuidCardinality: { - value: 374, - }, + value: 374, }, }, }, + hits: { + total: { value: 875, relation: 'eq' }, + hits: [], + } as estypes.SearchHitsMetadata, }; expect(formatExecutionLogResult(results)).toEqual({ total: 374, @@ -1436,12 +1477,14 @@ describe('formatExecutionLogResult', () => { ], }, executionUuidCardinality: { - executionUuidCardinality: { - value: 374, - }, + value: 374, }, }, }, + hits: { + total: { value: 875, relation: 'eq' }, + hits: [], + } as estypes.SearchHitsMetadata, }; expect(formatExecutionLogResult(results)).toEqual({ total: 374, @@ -1689,12 +1732,14 @@ describe('formatExecutionLogResult', () => { ], }, executionUuidCardinality: { - executionUuidCardinality: { - value: 417, - }, + value: 417, }, }, }, + hits: { + total: { value: 875, relation: 'eq' }, + hits: [], + } as estypes.SearchHitsMetadata, }; expect(formatExecutionLogResult(results)).toEqual({ total: 417, @@ -1750,78 +1795,283 @@ describe('formatExecutionLogResult', () => { ], }); }); -}); -describe('getExecutionKPIAggregation', () => { - test('should correctly generate aggregation', () => { - expect(getExecutionKPIAggregation()).toEqual({ - excludeExecuteStart: { - filter: { - bool: { - must_not: [ - { - term: { - 'event.action': 'execute-start', - }, - }, - ], - }, - }, - aggs: { + test('should throw an error when document is above 10,000', () => { + const results = { + aggregations: { + excludeExecuteStart: { + meta: {}, + doc_count: 875, executionUuid: { - terms: { - field: 'kibana.alert.rule.execution.uuid', - order: [ - { - 'ruleExecution>executeStartTime': 'desc', - }, - ], - size: 10000, - }, - aggs: { - executionUuidSorted: { - bucket_sort: { - from: 0, - size: 10000, - gap_policy: 'insert_zeros', + meta: {}, + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [ + { + key: 'ecf7ac4c-1c15-4a1d-818a-cacbf57f6158', + doc_count: 32, + timeoutMessage: { + meta: {}, + doc_count: 0, }, - }, - actionExecution: { - filter: { - bool: { - must: [ - { - bool: { - must: [ - { - match: { - 'event.action': 'execute', - }, + ruleExecution: { + meta: {}, + doc_count: 1, + numTriggeredActions: { + value: 5.0, + }, + numGeneratedActions: { + value: 5.0, + }, + numActiveAlerts: { + value: 5.0, + }, + numNewAlerts: { + value: 5.0, + }, + numRecoveredAlerts: { + value: 5.0, + }, + outcomeMessageAndMaintenanceWindow: { + hits: { + total: { + value: 1, + relation: 'eq', + }, + max_score: 1.0, + hits: [ + { + _index: '.kibana-event-log-8.2.0-000001', + _id: '7xKcb38BcntAq5ycFwiu', + _score: 1.0, + _source: { + rule: { id: 'a348a740-9e2c-11ec-bd64-774ed95c43ef', name: 'rule_name' }, + event: { + outcome: 'success', }, - { - match: { - 'event.provider': 'actions', + kibana: { + version: '8.2.0', + alerting: { + outcome: 'success', }, }, - ], + message: + "rule executed: example.always-firing:a348a740-9e2c-11ec-bd64-774ed95c43ef: 'test rule'", + }, }, - }, - ], - }, - }, - aggs: { - actionOutcomes: { - terms: { - field: 'event.outcome', - size: 2, + ], }, }, - }, - }, - ruleExecution: { - filter: { - bool: { - must: [ + scheduleDelay: { + value: 3.126e9, + }, + totalSearchDuration: { + value: 0.0, + }, + esSearchDuration: { + value: 0.0, + }, + executionDuration: { + value: 1.374e9, + }, + executeStartTime: { + value: 1.646844973039e12, + value_as_string: '2022-03-09T16:56:13.039Z', + }, + }, + actionExecution: { + meta: {}, + doc_count: 5, + actionOutcomes: { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [ + { + key: 'failure', + doc_count: 5, + }, + ], + }, + }, + }, + { + key: '61bb867b-661a-471f-bf92-23471afa10b3', + doc_count: 32, + timeoutMessage: { + meta: {}, + doc_count: 0, + }, + ruleExecution: { + meta: {}, + doc_count: 1, + numTriggeredActions: { + value: 5.0, + }, + numGeneratedActions: { + value: 5.0, + }, + numActiveAlerts: { + value: 5.0, + }, + numNewAlerts: { + value: 5.0, + }, + numRecoveredAlerts: { + value: 5.0, + }, + outcomeMessageAndMaintenanceWindow: { + hits: { + total: { + value: 1, + relation: 'eq', + }, + max_score: 1.0, + hits: [ + { + _index: '.kibana-event-log-8.2.0-000001', + _id: 'zRKbb38BcntAq5ycOwgk', + _score: 1.0, + _source: { + rule: { id: 'a348a740-9e2c-11ec-bd64-774ed95c43ef', name: 'rule_name' }, + event: { + outcome: 'success', + }, + kibana: { + version: '8.2.0', + alert: { + maintenance_window_ids: ['254699b0-dfb2-11ed-bb3d-c91b918d0260'], + }, + alerting: { + outcome: 'success', + }, + }, + message: + "rule executed: example.always-firing:a348a740-9e2c-11ec-bd64-774ed95c43ef: 'test rule'", + }, + }, + ], + }, + }, + scheduleDelay: { + value: 3.133e9, + }, + totalSearchDuration: { + value: 0.0, + }, + esSearchDuration: { + value: 0.0, + }, + executionDuration: { + value: 4.18e8, + }, + executeStartTime: { + value: 1.646844917518e12, + value_as_string: '2022-03-09T16:55:17.518Z', + }, + }, + actionExecution: { + meta: {}, + doc_count: 5, + actionOutcomes: { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [ + { + key: 'success', + doc_count: 5, + }, + ], + }, + }, + }, + ], + }, + executionUuidCardinality: { + value: 417, + }, + }, + }, + hits: { + total: { value: 10000, relation: 'gte' }, + hits: [], + } as estypes.SearchHitsMetadata, + }; + expect(() => formatExecutionLogResult(results)).toThrowErrorMatchingInlineSnapshot( + `"Results are limited to 10,000 documents, refine your search to see others."` + ); + }); +}); + +describe('getExecutionKPIAggregation', () => { + test('should correctly generate aggregation', () => { + expect(getExecutionKPIAggregation()).toEqual({ + excludeExecuteStart: { + filter: { + bool: { + must_not: [ + { + term: { + 'event.action': 'execute-start', + }, + }, + ], + }, + }, + aggs: { + executionUuid: { + terms: { + field: 'kibana.alert.rule.execution.uuid', + order: [ + { + 'ruleExecution>executeStartTime': 'desc', + }, + ], + size: 10000, + }, + aggs: { + executionUuidSorted: { + bucket_sort: { + from: 0, + size: 10000, + gap_policy: 'insert_zeros', + }, + }, + actionExecution: { + filter: { + bool: { + must: [ + { + bool: { + must: [ + { + match: { + 'event.action': 'execute', + }, + }, + { + match: { + 'event.provider': 'actions', + }, + }, + ], + }, + }, + ], + }, + }, + aggs: { + actionOutcomes: { + terms: { + field: 'event.outcome', + size: 2, + }, + }, + }, + }, + ruleExecution: { + filter: { + bool: { + must: [ { bool: { must: [ @@ -2254,6 +2504,10 @@ describe('formatExecutionKPIAggBuckets', () => { expect( formatExecutionKPIResult({ aggregations: undefined, + hits: { + total: { value: 875, relation: 'eq' }, + hits: [], + } as estypes.SearchHitsMetadata, }) ).toEqual({ activeAlerts: 0, @@ -2375,6 +2629,10 @@ describe('formatExecutionKPIAggBuckets', () => { }, }, }, + hits: { + total: { value: 875, relation: 'eq' }, + hits: [], + } as estypes.SearchHitsMetadata, }; expect(formatExecutionKPIResult(results)).toEqual({ @@ -2497,6 +2755,10 @@ describe('formatExecutionKPIAggBuckets', () => { }, }, }, + hits: { + total: { value: 875, relation: 'eq' }, + hits: [], + } as estypes.SearchHitsMetadata, }; expect(formatExecutionKPIResult(results)).toEqual({ @@ -2511,4 +2773,209 @@ describe('formatExecutionKPIAggBuckets', () => { triggeredActions: 10, }); }); + + test('should throw an error when document is above 10,000', () => { + const results = { + aggregations: { + excludeExecuteStart: { + meta: {}, + doc_count: 875, + executionUuid: { + meta: {}, + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [ + { + key: 'ecf7ac4c-1c15-4a1d-818a-cacbf57f6158', + doc_count: 32, + timeoutMessage: { + meta: {}, + doc_count: 0, + }, + ruleExecution: { + meta: {}, + doc_count: 1, + numTriggeredActions: { + value: 5.0, + }, + numGeneratedActions: { + value: 5.0, + }, + numActiveAlerts: { + value: 5.0, + }, + numNewAlerts: { + value: 5.0, + }, + numRecoveredAlerts: { + value: 5.0, + }, + outcomeMessageAndMaintenanceWindow: { + hits: { + total: { + value: 1, + relation: 'eq', + }, + max_score: 1.0, + hits: [ + { + _index: '.kibana-event-log-8.2.0-000001', + _id: '7xKcb38BcntAq5ycFwiu', + _score: 1.0, + _source: { + rule: { id: 'a348a740-9e2c-11ec-bd64-774ed95c43ef', name: 'rule_name' }, + event: { + outcome: 'success', + }, + kibana: { + version: '8.2.0', + alerting: { + outcome: 'success', + }, + }, + message: + "rule executed: example.always-firing:a348a740-9e2c-11ec-bd64-774ed95c43ef: 'test rule'", + }, + }, + ], + }, + }, + scheduleDelay: { + value: 3.126e9, + }, + totalSearchDuration: { + value: 0.0, + }, + esSearchDuration: { + value: 0.0, + }, + executionDuration: { + value: 1.374e9, + }, + executeStartTime: { + value: 1.646844973039e12, + value_as_string: '2022-03-09T16:56:13.039Z', + }, + }, + actionExecution: { + meta: {}, + doc_count: 5, + actionOutcomes: { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [ + { + key: 'failure', + doc_count: 5, + }, + ], + }, + }, + }, + { + key: '61bb867b-661a-471f-bf92-23471afa10b3', + doc_count: 32, + timeoutMessage: { + meta: {}, + doc_count: 0, + }, + ruleExecution: { + meta: {}, + doc_count: 1, + numTriggeredActions: { + value: 5.0, + }, + numGeneratedActions: { + value: 5.0, + }, + numActiveAlerts: { + value: 5.0, + }, + numNewAlerts: { + value: 5.0, + }, + numRecoveredAlerts: { + value: 5.0, + }, + outcomeMessageAndMaintenanceWindow: { + hits: { + total: { + value: 1, + relation: 'eq', + }, + max_score: 1.0, + hits: [ + { + _index: '.kibana-event-log-8.2.0-000001', + _id: 'zRKbb38BcntAq5ycOwgk', + _score: 1.0, + _source: { + rule: { id: 'a348a740-9e2c-11ec-bd64-774ed95c43ef', name: 'rule_name' }, + event: { + outcome: 'success', + }, + kibana: { + version: '8.2.0', + alert: { + maintenance_window_ids: ['254699b0-dfb2-11ed-bb3d-c91b918d0260'], + }, + alerting: { + outcome: 'success', + }, + }, + message: + "rule executed: example.always-firing:a348a740-9e2c-11ec-bd64-774ed95c43ef: 'test rule'", + }, + }, + ], + }, + }, + scheduleDelay: { + value: 3.133e9, + }, + totalSearchDuration: { + value: 0.0, + }, + esSearchDuration: { + value: 0.0, + }, + executionDuration: { + value: 4.18e8, + }, + executeStartTime: { + value: 1.646844917518e12, + value_as_string: '2022-03-09T16:55:17.518Z', + }, + }, + actionExecution: { + meta: {}, + doc_count: 5, + actionOutcomes: { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [ + { + key: 'success', + doc_count: 5, + }, + ], + }, + }, + }, + ], + }, + executionUuidCardinality: { + value: 417, + }, + }, + }, + hits: { + total: { value: 10000, relation: 'gte' }, + hits: [], + } as estypes.SearchHitsMetadata, + }; + expect(() => formatExecutionKPIResult(results)).toThrowErrorMatchingInlineSnapshot( + `"Results are limited to 10,000 documents, refine your search to see others."` + ); + }); }); diff --git a/x-pack/plugins/alerting/server/lib/get_execution_log_aggregation.ts b/x-pack/plugins/alerting/server/lib/get_execution_log_aggregation.ts index 551dfdce1ef42..30f495efbf087 100644 --- a/x-pack/plugins/alerting/server/lib/get_execution_log_aggregation.ts +++ b/x-pack/plugins/alerting/server/lib/get_execution_log_aggregation.ts @@ -5,6 +5,7 @@ * 2.0. */ +import { i18n } from '@kbn/i18n'; import { KueryNode } from '@kbn/es-query'; import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import Boom from '@hapi/boom'; @@ -14,7 +15,7 @@ import { fromKueryExpression, toElasticsearchQuery } from '@kbn/es-query'; import { parseDuration } from '.'; import { IExecutionLog, IExecutionLogResult, EMPTY_EXECUTION_KPI_RESULT } from '../../common'; -const DEFAULT_MAX_BUCKETS_LIMIT = 1000; // do not retrieve more than this number of executions +const DEFAULT_MAX_BUCKETS_LIMIT = 10000; // do not retrieve more than this number of executions. UI limits 1000 to display, but we need to fetch all 10000 to accurately reflect the KPIs const DEFAULT_MAX_KPI_BUCKETS_LIMIT = 10000; const RULE_ID_FIELD = 'rule.id'; @@ -104,9 +105,7 @@ export interface ExecutionUuidKPIAggResult interface ExcludeExecuteStartAggResult extends estypes.AggregationsAggregateBase { executionUuid: ExecutionUuidAggResult; - executionUuidCardinality: { - executionUuidCardinality: estypes.AggregationsCardinalityAggregate; - }; + executionUuidCardinality: estypes.AggregationsCardinalityAggregate; // This is an accurate type even though we're actually using a sum bucket agg } interface ExcludeExecuteStartKpiAggResult extends estypes.AggregationsAggregateBase { @@ -301,21 +300,37 @@ export function getExecutionLogAggregation({ }, aggs: { // Get total number of executions - executionUuidCardinality: { - filter: { - bool: { - ...(dslFilterQuery ? { filter: dslFilterQuery } : {}), - must: [getProviderAndActionFilter('alerting', 'execute')], - }, + executionUuidCardinalityBuckets: { + terms: { + field: EXECUTION_UUID_FIELD, + size: DEFAULT_MAX_BUCKETS_LIMIT, + order: formatSortForTermSort([{ timestamp: { order: 'desc' } }]), }, aggs: { - executionUuidCardinality: { - cardinality: { - field: EXECUTION_UUID_FIELD, + ruleExecution: { + filter: { + bool: { + ...(dslFilterQuery ? { filter: dslFilterQuery } : {}), + must: [getProviderAndActionFilter('alerting', 'execute')], + }, + }, + aggs: { + executeStartTime: { + min: { + field: START_FIELD, + }, + }, }, }, }, }, + // Cardinality aggregation isn't accurate for this use case because we want to limit the cardinality + // to DEFAULT_MAX_BUCKETS_LIMIT. Instead, we sum the buckets and call it a cardinality. + executionUuidCardinality: { + sum_bucket: { + buckets_path: 'executionUuidCardinalityBuckets>ruleExecution._count', + }, + }, executionUuid: { // Bucket by execution UUID terms: { @@ -592,8 +607,31 @@ function formatExecutionKPIAggBuckets(buckets: IExecutionUuidKpiAggBucket[]) { return objToReturn; } +function validTotalHitsLimitationOnExecutionLog(esHitsTotal: estypes.SearchTotalHits) { + if ( + esHitsTotal && + esHitsTotal.relation && + esHitsTotal.value && + esHitsTotal.relation === 'gte' && + esHitsTotal.value === 10000 + ) { + throw Boom.entityTooLarge( + i18n.translate('xpack.alerting.feature.executionLogAggs.limitationQueryMsg', { + defaultMessage: + 'Results are limited to 10,000 documents, refine your search to see others.', + }), + EMPTY_EXECUTION_LOG_RESULT + ); + } +} + export function formatExecutionKPIResult(results: AggregateEventsBySavedObjectResult) { - const { aggregations } = results; + const { aggregations, hits } = results; + + if (hits && hits.total) { + validTotalHitsLimitationOnExecutionLog(hits.total as estypes.SearchTotalHits); + } + if (!aggregations || !aggregations.excludeExecuteStart) { return EMPTY_EXECUTION_KPI_RESULT; } @@ -605,7 +643,11 @@ export function formatExecutionKPIResult(results: AggregateEventsBySavedObjectRe export function formatExecutionLogResult( results: AggregateEventsBySavedObjectResult ): IExecutionLogResult { - const { aggregations } = results; + const { aggregations, hits } = results; + + if (hits && hits.total) { + validTotalHitsLimitationOnExecutionLog(hits.total as estypes.SearchTotalHits); + } if (!aggregations || !aggregations.excludeExecuteStart) { return EMPTY_EXECUTION_LOG_RESULT; @@ -613,7 +655,7 @@ export function formatExecutionLogResult( const aggs = aggregations.excludeExecuteStart as ExcludeExecuteStartAggResult; - const total = aggs.executionUuidCardinality.executionUuidCardinality.value; + const total = aggs.executionUuidCardinality.value; const buckets = aggs.executionUuid.buckets; return { diff --git a/x-pack/plugins/alerting/server/rules_client/tests/get_execution_log.test.ts b/x-pack/plugins/alerting/server/rules_client/tests/get_execution_log.test.ts index c4419ef8386a5..1d00d74d1ddf8 100644 --- a/x-pack/plugins/alerting/server/rules_client/tests/get_execution_log.test.ts +++ b/x-pack/plugins/alerting/server/rules_client/tests/get_execution_log.test.ts @@ -339,12 +339,14 @@ const aggregateResults = { ], }, executionUuidCardinality: { - executionUuidCardinality: { - value: 374, - }, + value: 374, }, }, }, + hits: { + total: { value: 875, relation: 'eq' }, + hits: [], + } as estypes.SearchHitsMetadata, }; function getRuleSavedObject(attributes: Partial = {}): SavedObject { diff --git a/x-pack/plugins/event_log/server/es/cluster_client_adapter.test.ts b/x-pack/plugins/event_log/server/es/cluster_client_adapter.test.ts index a147d80f6639d..3cf30df38c961 100644 --- a/x-pack/plugins/event_log/server/es/cluster_client_adapter.test.ts +++ b/x-pack/plugins/event_log/server/es/cluster_client_adapter.test.ts @@ -673,6 +673,13 @@ describe('aggregateEventsBySavedObject', () => { ], }, }, + hits: { + hits: [], + total: { + relation: 'eq', + value: 0, + }, + }, }); }); }); @@ -771,6 +778,13 @@ describe('aggregateEventsWithAuthFilter', () => { ], }, }, + hits: { + hits: [], + total: { + relation: 'eq', + value: 0, + }, + }, }); }); @@ -919,6 +933,13 @@ describe('aggregateEventsWithAuthFilter', () => { ], }, }, + hits: { + hits: [], + total: { + relation: 'eq', + value: 0, + }, + }, }); }); }); diff --git a/x-pack/plugins/event_log/server/es/cluster_client_adapter.ts b/x-pack/plugins/event_log/server/es/cluster_client_adapter.ts index 1eb1219621c37..530374c770bbc 100644 --- a/x-pack/plugins/event_log/server/es/cluster_client_adapter.ts +++ b/x-pack/plugins/event_log/server/es/cluster_client_adapter.ts @@ -82,6 +82,7 @@ export type AggregateEventsOptionsBySavedObjectFilter = QueryOptionsEventsBySave }; export interface AggregateEventsBySavedObjectResult { + hits?: estypes.SearchHitsMetadata; aggregations: Record | undefined; } @@ -455,12 +456,13 @@ export class ClusterClientAdapter({ + const { aggregations, hits } = await esClient.search({ index, body, }); return { aggregations, + hits, }; } catch (err) { throw new Error( @@ -488,19 +490,20 @@ export class ClusterClientAdapter({ + const { aggregations, hits } = await esClient.search({ index, body, }); return { aggregations, + hits, }; } catch (err) { - throw new Error( + this.logger.debug( `querying for Event Log by for type "${type}" and auth filter failed with: ${err.message}` ); + throw err; } } } diff --git a/x-pack/plugins/triggers_actions_ui/public/application/hooks/use_load_rule_event_logs.ts b/x-pack/plugins/triggers_actions_ui/public/application/hooks/use_load_rule_event_logs.ts index 627b1b2f9a6a6..409be866b730b 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/hooks/use_load_rule_event_logs.ts +++ b/x-pack/plugins/triggers_actions_ui/public/application/hooks/use_load_rule_event_logs.ts @@ -4,7 +4,7 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ -import { useCallback } from 'react'; +import { useCallback, useMemo } from 'react'; import { useQuery } from '@tanstack/react-query'; import datemath from '@kbn/datemath'; import { useKibana } from '../../common/lib/kibana'; @@ -37,7 +37,6 @@ const isGlobal = (props: UseLoadRuleEventLogsProps): props is LoadGlobalExecutio export function useLoadRuleEventLogs(props: UseLoadRuleEventLogsProps) { const { http } = useKibana().services; - const queryFn = useCallback(() => { if (isGlobal(props)) { return loadGlobalExecutionLogAggregations({ @@ -55,16 +54,21 @@ export function useLoadRuleEventLogs(props: UseLoadRuleEventLogsProps) { }); }, [props, http]); - const { data, isLoading, isFetching, refetch } = useQuery({ + const { data, error, isLoading, isFetching, refetch } = useQuery({ queryKey: ['loadRuleEventLog', props], queryFn, onError: props.onError, + retry: 0, refetchOnWindowFocus: false, }); - - return { - data, - isLoading: isLoading || isFetching, - loadEventLogs: refetch, - }; + const hasExceedLogs = useMemo(() => error && error.body.statusCode === 413, [error]); + return useMemo( + () => ({ + data, + hasExceedLogs, + isLoading: isLoading || isFetching, + loadEventLogs: refetch, + }), + [data, hasExceedLogs, isFetching, isLoading, refetch] + ); } diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/rule_event_log_list_kpi.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/rule_event_log_list_kpi.test.tsx index 718222636830a..7b9398d37e418 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/rule_event_log_list_kpi.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/rule_event_log_list_kpi.test.tsx @@ -12,7 +12,10 @@ import { loadExecutionKPIAggregations } from '../../../lib/rule_api/load_executi import { loadGlobalExecutionKPIAggregations } from '../../../lib/rule_api/load_global_execution_kpi_aggregations'; import { RuleEventLogListKPI } from './rule_event_log_list_kpi'; import { getIsExperimentalFeatureEnabled } from '../../../../common/get_experimental_features'; +import { useKibana } from '../../../../common/lib'; +import { IToasts } from '@kbn/core/public'; +const addDangerMock = jest.fn(); jest.mock('../../../../common/lib/kibana', () => ({ useKibana: jest.fn().mockReturnValue({ services: { @@ -20,6 +23,7 @@ jest.mock('../../../../common/lib/kibana', () => ({ }, }), })); +const useKibanaMock = useKibana as jest.Mocked; jest.mock('../../../lib/rule_api/load_execution_kpi_aggregations', () => ({ loadExecutionKPIAggregations: jest.fn(), @@ -53,6 +57,9 @@ const loadGlobalExecutionKPIAggregationsMock = describe('rule_event_log_list_kpi', () => { beforeEach(() => { jest.clearAllMocks(); + useKibanaMock().services.notifications.toasts = { + addDanger: addDangerMock, + } as unknown as IToasts; (getIsExperimentalFeatureEnabled as jest.Mock).mockImplementation(() => false); loadExecutionKPIAggregationsMock.mockResolvedValue(mockKpiResponse); loadGlobalExecutionKPIAggregationsMock.mockResolvedValue(mockKpiResponse); @@ -226,4 +233,44 @@ describe('rule_event_log_list_kpi', () => { }) ); }); + + it('Should call addDanger function when an the API throw an error', async () => { + loadGlobalExecutionKPIAggregationsMock.mockRejectedValue({ body: { statusCode: 400 } }); + const wrapper = mountWithIntl( + + ); + // Let the load resolve + await act(async () => { + await nextTick(); + wrapper.update(); + }); + + expect(addDangerMock).toHaveBeenCalled(); + }); + + it('Should NOT call addDanger function when an the API throw a 413 error', async () => { + loadGlobalExecutionKPIAggregationsMock.mockRejectedValue({ body: { statusCode: 413 } }); + const wrapper = mountWithIntl( + + ); + // Let the load resolve + await act(async () => { + await nextTick(); + wrapper.update(); + }); + + expect(addDangerMock).not.toHaveBeenCalled(); + }); }); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/rule_event_log_list_kpi.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/rule_event_log_list_kpi.tsx index 63ef7cb5bbc22..d8606a525d821 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/rule_event_log_list_kpi.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/rule_event_log_list_kpi.tsx @@ -109,6 +109,9 @@ export const RuleEventLogListKPI = (props: RuleEventLogListKPIProps) => { }); setKpi(newKpi); } catch (e) { + if (e.body.statusCode === 413) { + return; + } toasts.addDanger({ title: API_FAILED_MESSAGE, text: e.body?.message ?? e, diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/rule_event_log_list_table.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/rule_event_log_list_table.test.tsx index ffcb8f69ee7c4..9c18d74a53fda 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/rule_event_log_list_table.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/rule_event_log_list_table.test.tsx @@ -95,6 +95,7 @@ describe('rule_event_log_list_table', () => { useLoadRuleEventLogs.mockReturnValue({ data: mockLogResponse, isLoading: false, + hasExceedLogs: false, loadEventLogs: mockLoadEventLog, }); }); @@ -130,6 +131,7 @@ describe('rule_event_log_list_table', () => { useLoadRuleEventLogs.mockReturnValue({ data: [], isLoading: true, + hasExceedLogs: false, loadEventLogs: mockLoadEventLog, }); @@ -254,6 +256,7 @@ describe('rule_event_log_list_table', () => { total: 100, }, isLoading: true, + hasExceedLogs: false, loadEventLogs: mockLoadEventLog, }); }); @@ -306,6 +309,7 @@ describe('rule_event_log_list_table', () => { total: 0, }, isLoading: false, + hasExceedLogs: false, loadEventLogs: mockLoadEventLog, }); render(); @@ -324,6 +328,7 @@ describe('rule_event_log_list_table', () => { total: 1, }, isLoading: false, + hasExceedLogs: false, loadEventLogs: mockLoadEventLog, }); @@ -343,6 +348,7 @@ describe('rule_event_log_list_table', () => { total: 85, }, isLoading: false, + hasExceedLogs: false, loadEventLogs: mockLoadEventLog, }); @@ -368,6 +374,7 @@ describe('rule_event_log_list_table', () => { total: 85, }, isLoading: false, + hasExceedLogs: false, loadEventLogs: mockLoadEventLog, }); @@ -397,7 +404,7 @@ describe('rule_event_log_list_table', () => { outcomeFilter: [], page: 0, perPage: 10, - dateStart: 'now-24h', + dateStart: 'now-15m', dateEnd: 'now', }) ); @@ -460,6 +467,7 @@ describe('rule_event_log_list_table', () => { total: 1100, }, isLoading: false, + hasExceedLogs: false, loadEventLogs: mockLoadEventLog, }); }); @@ -485,6 +493,36 @@ describe('rule_event_log_list_table', () => { }); }); + describe('Show exceed document prompt', () => { + beforeEach(() => { + useLoadRuleEventLogs.mockReturnValue({ + data: { + data: [], + total: 11000, + }, + isLoading: false, + hasExceedLogs: true, + loadEventLogs: mockLoadEventLog, + }); + }); + + it('should show the exceed limit logs prompt normally', async () => { + render(); + + await waitFor(() => { + expect(screen.queryByTestId('exceedLimitLogsCallout')).toBeInTheDocument(); + }); + }); + + it('should hide the logs table', async () => { + render(); + + await waitFor(() => { + expect(screen.queryByTestId('eventLogList')).not.toBeInTheDocument(); + }); + }); + }); + it('renders errored action badges in message rows', async () => { useLoadRuleEventLogs.mockReturnValue({ data: { diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/rule_event_log_list_table.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/rule_event_log_list_table.tsx index 73eb9f2c5c536..a7ddc9ff04fb3 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/rule_event_log_list_table.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/rule_event_log_list_table.tsx @@ -19,6 +19,7 @@ import { OnTimeChangeProps, EuiSwitch, EuiDataGridColumn, + EuiCallOut, } from '@elastic/eui'; import { IExecutionLog } from '@kbn/alerting-plugin/common'; import { useKibana } from '../../../../common/lib/kibana'; @@ -150,7 +151,7 @@ export const RuleEventLogListTable = ( }); // Date related states - const [dateStart, setDateStart] = useState('now-24h'); + const [dateStart, setDateStart] = useState('now-15m'); const [dateEnd, setDateEnd] = useState('now'); const [dateFormat] = useState(() => uiSettings?.get('dateFormat')); const [commonlyUsedRanges] = useState(() => { @@ -197,6 +198,9 @@ export const RuleEventLogListTable = ( const onError = useCallback( (e) => { + if (e.body.statusCode === 413) { + return; + } notifications.toasts.addDanger({ title: API_FAILED_MESSAGE, text: e.body?.message ?? e, @@ -205,7 +209,7 @@ export const RuleEventLogListTable = ( [notifications] ); - const { data, isLoading, loadEventLogs } = useLoadRuleEventLogs({ + const { data, isLoading, hasExceedLogs, loadEventLogs } = useLoadRuleEventLogs({ id: ruleId, sort: formattedSort as LoadExecutionLogAggregationsProps['sort'], outcomeFilter: filter, @@ -724,7 +728,19 @@ export const RuleEventLogListTable = ( - {renderList()} + {hasExceedLogs && ( + + } + data-test-subj="exceedLimitLogsCallout" + size="m" + /> + )} + {!hasExceedLogs && renderList()} {isOnLastPage && ( Date: Wed, 10 Jan 2024 01:04:51 -0500 Subject: [PATCH 17/20] [api-docs] 2024-01-10 Daily api_docs build (#174565) Generated by https://buildkite.com/elastic/kibana-api-docs-daily/builds/578 --- api_docs/actions.mdx | 2 +- api_docs/advanced_settings.mdx | 2 +- .../ai_assistant_management_observability.mdx | 2 +- .../ai_assistant_management_selection.mdx | 2 +- api_docs/aiops.mdx | 2 +- api_docs/alerting.devdocs.json | 64 + api_docs/alerting.mdx | 4 +- api_docs/apm.mdx | 2 +- api_docs/apm_data_access.mdx | 2 +- api_docs/asset_manager.mdx | 2 +- api_docs/banners.mdx | 2 +- api_docs/bfetch.mdx | 2 +- api_docs/canvas.mdx | 2 +- api_docs/cases.mdx | 2 +- api_docs/charts.mdx | 2 +- api_docs/cloud.mdx | 2 +- api_docs/cloud_data_migration.mdx | 2 +- api_docs/cloud_defend.mdx | 2 +- api_docs/cloud_experiments.mdx | 2 +- api_docs/cloud_security_posture.mdx | 2 +- api_docs/console.mdx | 2 +- api_docs/content_management.mdx | 2 +- api_docs/controls.mdx | 2 +- api_docs/custom_integrations.mdx | 2 +- api_docs/dashboard.mdx | 2 +- api_docs/dashboard_enhanced.mdx | 2 +- api_docs/data.mdx | 2 +- api_docs/data_query.mdx | 2 +- api_docs/data_search.mdx | 2 +- api_docs/data_view_editor.mdx | 2 +- api_docs/data_view_field_editor.mdx | 2 +- api_docs/data_view_management.mdx | 2 +- api_docs/data_views.mdx | 2 +- api_docs/data_visualizer.mdx | 2 +- api_docs/dataset_quality.mdx | 2 +- api_docs/deprecations_by_api.mdx | 2 +- api_docs/deprecations_by_plugin.mdx | 2 +- api_docs/deprecations_by_team.mdx | 2 +- api_docs/dev_tools.mdx | 2 +- api_docs/discover.mdx | 2 +- api_docs/discover_enhanced.mdx | 2 +- api_docs/ecs_data_quality_dashboard.mdx | 2 +- api_docs/elastic_assistant.mdx | 2 +- api_docs/embeddable.mdx | 2 +- api_docs/embeddable_enhanced.mdx | 2 +- api_docs/encrypted_saved_objects.mdx | 2 +- api_docs/enterprise_search.mdx | 2 +- api_docs/es_ui_shared.mdx | 2 +- api_docs/event_annotation.mdx | 2 +- api_docs/event_annotation_listing.mdx | 2 +- api_docs/event_log.devdocs.json | 15 + api_docs/event_log.mdx | 4 +- api_docs/exploratory_view.mdx | 2 +- api_docs/expression_error.mdx | 2 +- api_docs/expression_gauge.mdx | 2 +- api_docs/expression_heatmap.mdx | 2 +- api_docs/expression_image.mdx | 2 +- api_docs/expression_legacy_metric_vis.mdx | 2 +- api_docs/expression_metric.mdx | 2 +- api_docs/expression_metric_vis.mdx | 2 +- api_docs/expression_partition_vis.mdx | 2 +- api_docs/expression_repeat_image.mdx | 2 +- api_docs/expression_reveal_image.mdx | 2 +- api_docs/expression_shape.mdx | 2 +- api_docs/expression_tagcloud.mdx | 2 +- api_docs/expression_x_y.mdx | 2 +- api_docs/expressions.mdx | 2 +- api_docs/features.mdx | 2 +- api_docs/field_formats.mdx | 2 +- api_docs/file_upload.mdx | 2 +- api_docs/files.mdx | 2 +- api_docs/files_management.mdx | 2 +- api_docs/fleet.mdx | 2 +- api_docs/global_search.mdx | 2 +- api_docs/guided_onboarding.mdx | 2 +- api_docs/home.mdx | 2 +- api_docs/image_embeddable.mdx | 2 +- api_docs/index_lifecycle_management.mdx | 2 +- api_docs/index_management.devdocs.json | 2 +- api_docs/index_management.mdx | 2 +- api_docs/infra.mdx | 2 +- api_docs/ingest_pipelines.mdx | 2 +- api_docs/inspector.mdx | 2 +- api_docs/interactive_setup.mdx | 2 +- api_docs/kbn_ace.mdx | 2 +- api_docs/kbn_actions_types.mdx | 2 +- api_docs/kbn_aiops_components.mdx | 2 +- api_docs/kbn_aiops_utils.mdx | 2 +- .../kbn_alerting_api_integration_helpers.mdx | 2 +- api_docs/kbn_alerting_state_types.mdx | 2 +- api_docs/kbn_alerting_types.mdx | 2 +- .../kbn_alerts_as_data_utils.devdocs.json | 17 +- api_docs/kbn_alerts_as_data_utils.mdx | 4 +- api_docs/kbn_alerts_ui_shared.mdx | 2 +- api_docs/kbn_analytics.mdx | 2 +- api_docs/kbn_analytics_client.mdx | 2 +- api_docs/kbn_analytics_collection_utils.mdx | 2 +- ..._analytics_shippers_elastic_v3_browser.mdx | 2 +- ...n_analytics_shippers_elastic_v3_common.mdx | 2 +- ...n_analytics_shippers_elastic_v3_server.mdx | 2 +- api_docs/kbn_analytics_shippers_fullstory.mdx | 2 +- ..._analytics_shippers_gainsight.devdocs.json | 386 --- api_docs/kbn_analytics_shippers_gainsight.mdx | 33 - api_docs/kbn_apm_config_loader.mdx | 2 +- api_docs/kbn_apm_synthtrace.mdx | 2 +- api_docs/kbn_apm_synthtrace_client.mdx | 2 +- api_docs/kbn_apm_utils.mdx | 2 +- api_docs/kbn_axe_config.mdx | 2 +- api_docs/kbn_bfetch_error.mdx | 2 +- api_docs/kbn_calculate_auto.mdx | 2 +- .../kbn_calculate_width_from_char_count.mdx | 2 +- api_docs/kbn_cases_components.mdx | 2 +- api_docs/kbn_cell_actions.mdx | 2 +- api_docs/kbn_chart_expressions_common.mdx | 2 +- api_docs/kbn_chart_icons.mdx | 2 +- api_docs/kbn_ci_stats_core.mdx | 2 +- api_docs/kbn_ci_stats_performance_metrics.mdx | 2 +- api_docs/kbn_ci_stats_reporter.mdx | 2 +- api_docs/kbn_cli_dev_mode.mdx | 2 +- api_docs/kbn_code_editor.mdx | 2 +- api_docs/kbn_code_editor_mock.mdx | 2 +- api_docs/kbn_code_owners.mdx | 2 +- api_docs/kbn_coloring.mdx | 2 +- api_docs/kbn_config.mdx | 2 +- api_docs/kbn_config_mocks.mdx | 2 +- api_docs/kbn_config_schema.mdx | 2 +- .../kbn_content_management_content_editor.mdx | 2 +- ...tent_management_tabbed_table_list_view.mdx | 2 +- ...kbn_content_management_table_list_view.mdx | 2 +- ...tent_management_table_list_view_common.mdx | 2 +- ...ntent_management_table_list_view_table.mdx | 2 +- api_docs/kbn_content_management_utils.mdx | 2 +- api_docs/kbn_core_analytics_browser.mdx | 2 +- .../kbn_core_analytics_browser_internal.mdx | 2 +- api_docs/kbn_core_analytics_browser_mocks.mdx | 2 +- api_docs/kbn_core_analytics_server.mdx | 2 +- .../kbn_core_analytics_server_internal.mdx | 2 +- api_docs/kbn_core_analytics_server_mocks.mdx | 2 +- api_docs/kbn_core_application_browser.mdx | 2 +- .../kbn_core_application_browser_internal.mdx | 2 +- .../kbn_core_application_browser_mocks.mdx | 2 +- api_docs/kbn_core_application_common.mdx | 2 +- api_docs/kbn_core_apps_browser_internal.mdx | 2 +- api_docs/kbn_core_apps_browser_mocks.mdx | 2 +- api_docs/kbn_core_apps_server_internal.mdx | 2 +- api_docs/kbn_core_base_browser_mocks.mdx | 2 +- api_docs/kbn_core_base_common.mdx | 2 +- api_docs/kbn_core_base_server_internal.mdx | 2 +- api_docs/kbn_core_base_server_mocks.mdx | 2 +- .../kbn_core_capabilities_browser_mocks.mdx | 2 +- api_docs/kbn_core_capabilities_common.mdx | 2 +- api_docs/kbn_core_capabilities_server.mdx | 2 +- .../kbn_core_capabilities_server_mocks.mdx | 2 +- api_docs/kbn_core_chrome_browser.mdx | 2 +- api_docs/kbn_core_chrome_browser_mocks.mdx | 2 +- api_docs/kbn_core_config_server_internal.mdx | 2 +- api_docs/kbn_core_custom_branding_browser.mdx | 2 +- ..._core_custom_branding_browser_internal.mdx | 2 +- ...kbn_core_custom_branding_browser_mocks.mdx | 2 +- api_docs/kbn_core_custom_branding_common.mdx | 2 +- api_docs/kbn_core_custom_branding_server.mdx | 2 +- ...n_core_custom_branding_server_internal.mdx | 2 +- .../kbn_core_custom_branding_server_mocks.mdx | 2 +- api_docs/kbn_core_deprecations_browser.mdx | 2 +- ...kbn_core_deprecations_browser_internal.mdx | 2 +- .../kbn_core_deprecations_browser_mocks.mdx | 2 +- api_docs/kbn_core_deprecations_common.mdx | 2 +- api_docs/kbn_core_deprecations_server.mdx | 2 +- .../kbn_core_deprecations_server_internal.mdx | 2 +- .../kbn_core_deprecations_server_mocks.mdx | 2 +- api_docs/kbn_core_doc_links_browser.mdx | 2 +- api_docs/kbn_core_doc_links_browser_mocks.mdx | 2 +- api_docs/kbn_core_doc_links_server.mdx | 2 +- api_docs/kbn_core_doc_links_server_mocks.mdx | 2 +- ...e_elasticsearch_client_server_internal.mdx | 2 +- ...core_elasticsearch_client_server_mocks.mdx | 2 +- api_docs/kbn_core_elasticsearch_server.mdx | 2 +- ...kbn_core_elasticsearch_server_internal.mdx | 2 +- .../kbn_core_elasticsearch_server_mocks.mdx | 2 +- .../kbn_core_environment_server_internal.mdx | 2 +- .../kbn_core_environment_server_mocks.mdx | 2 +- .../kbn_core_execution_context_browser.mdx | 2 +- ...ore_execution_context_browser_internal.mdx | 2 +- ...n_core_execution_context_browser_mocks.mdx | 2 +- .../kbn_core_execution_context_common.mdx | 2 +- .../kbn_core_execution_context_server.mdx | 2 +- ...core_execution_context_server_internal.mdx | 2 +- ...bn_core_execution_context_server_mocks.mdx | 2 +- api_docs/kbn_core_fatal_errors_browser.mdx | 2 +- .../kbn_core_fatal_errors_browser_mocks.mdx | 2 +- api_docs/kbn_core_http_browser.mdx | 2 +- api_docs/kbn_core_http_browser_internal.mdx | 2 +- api_docs/kbn_core_http_browser_mocks.mdx | 2 +- api_docs/kbn_core_http_common.mdx | 2 +- .../kbn_core_http_context_server_mocks.mdx | 2 +- ...re_http_request_handler_context_server.mdx | 2 +- api_docs/kbn_core_http_resources_server.mdx | 2 +- ...bn_core_http_resources_server_internal.mdx | 2 +- .../kbn_core_http_resources_server_mocks.mdx | 2 +- .../kbn_core_http_router_server_internal.mdx | 2 +- .../kbn_core_http_router_server_mocks.mdx | 2 +- api_docs/kbn_core_http_server.devdocs.json | 4 + api_docs/kbn_core_http_server.mdx | 2 +- api_docs/kbn_core_http_server_internal.mdx | 2 +- api_docs/kbn_core_http_server_mocks.mdx | 2 +- api_docs/kbn_core_i18n_browser.mdx | 2 +- api_docs/kbn_core_i18n_browser_mocks.mdx | 2 +- api_docs/kbn_core_i18n_server.mdx | 2 +- api_docs/kbn_core_i18n_server_internal.mdx | 2 +- api_docs/kbn_core_i18n_server_mocks.mdx | 2 +- ...n_core_injected_metadata_browser_mocks.mdx | 2 +- ...kbn_core_integrations_browser_internal.mdx | 2 +- .../kbn_core_integrations_browser_mocks.mdx | 2 +- api_docs/kbn_core_lifecycle_browser.mdx | 2 +- api_docs/kbn_core_lifecycle_browser_mocks.mdx | 2 +- api_docs/kbn_core_lifecycle_server.mdx | 2 +- api_docs/kbn_core_lifecycle_server_mocks.mdx | 2 +- api_docs/kbn_core_logging_browser_mocks.mdx | 2 +- api_docs/kbn_core_logging_common_internal.mdx | 2 +- api_docs/kbn_core_logging_server.mdx | 2 +- api_docs/kbn_core_logging_server_internal.mdx | 2 +- api_docs/kbn_core_logging_server_mocks.mdx | 2 +- ...ore_metrics_collectors_server_internal.mdx | 2 +- ...n_core_metrics_collectors_server_mocks.mdx | 2 +- api_docs/kbn_core_metrics_server.mdx | 2 +- api_docs/kbn_core_metrics_server_internal.mdx | 2 +- api_docs/kbn_core_metrics_server_mocks.mdx | 2 +- api_docs/kbn_core_mount_utils_browser.mdx | 2 +- api_docs/kbn_core_node_server.mdx | 2 +- api_docs/kbn_core_node_server_internal.mdx | 2 +- api_docs/kbn_core_node_server_mocks.mdx | 2 +- api_docs/kbn_core_notifications_browser.mdx | 2 +- ...bn_core_notifications_browser_internal.mdx | 2 +- .../kbn_core_notifications_browser_mocks.mdx | 2 +- api_docs/kbn_core_overlays_browser.mdx | 2 +- .../kbn_core_overlays_browser_internal.mdx | 2 +- api_docs/kbn_core_overlays_browser_mocks.mdx | 2 +- api_docs/kbn_core_plugins_browser.mdx | 2 +- api_docs/kbn_core_plugins_browser_mocks.mdx | 2 +- .../kbn_core_plugins_contracts_browser.mdx | 2 +- .../kbn_core_plugins_contracts_server.mdx | 2 +- api_docs/kbn_core_plugins_server.mdx | 2 +- api_docs/kbn_core_plugins_server_mocks.mdx | 2 +- api_docs/kbn_core_preboot_server.mdx | 2 +- api_docs/kbn_core_preboot_server_mocks.mdx | 2 +- api_docs/kbn_core_rendering_browser_mocks.mdx | 2 +- .../kbn_core_rendering_server_internal.mdx | 2 +- api_docs/kbn_core_rendering_server_mocks.mdx | 2 +- api_docs/kbn_core_root_server_internal.mdx | 2 +- .../kbn_core_saved_objects_api_browser.mdx | 2 +- .../kbn_core_saved_objects_api_server.mdx | 2 +- ...bn_core_saved_objects_api_server_mocks.mdx | 2 +- ...ore_saved_objects_base_server_internal.mdx | 2 +- ...n_core_saved_objects_base_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_browser.mdx | 2 +- ...bn_core_saved_objects_browser_internal.mdx | 2 +- .../kbn_core_saved_objects_browser_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_common.mdx | 2 +- ..._objects_import_export_server_internal.mdx | 2 +- ...ved_objects_import_export_server_mocks.mdx | 2 +- ...aved_objects_migration_server_internal.mdx | 2 +- ...e_saved_objects_migration_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_server.mdx | 2 +- ...kbn_core_saved_objects_server_internal.mdx | 2 +- .../kbn_core_saved_objects_server_mocks.mdx | 2 +- .../kbn_core_saved_objects_utils_server.mdx | 2 +- api_docs/kbn_core_status_common.mdx | 2 +- api_docs/kbn_core_status_common_internal.mdx | 2 +- api_docs/kbn_core_status_server.mdx | 2 +- api_docs/kbn_core_status_server_internal.mdx | 2 +- api_docs/kbn_core_status_server_mocks.mdx | 2 +- ...core_test_helpers_deprecations_getters.mdx | 2 +- ...n_core_test_helpers_http_setup_browser.mdx | 2 +- api_docs/kbn_core_test_helpers_kbn_server.mdx | 2 +- .../kbn_core_test_helpers_model_versions.mdx | 2 +- ...n_core_test_helpers_so_type_serializer.mdx | 2 +- api_docs/kbn_core_test_helpers_test_utils.mdx | 2 +- api_docs/kbn_core_theme_browser.mdx | 2 +- api_docs/kbn_core_theme_browser_mocks.mdx | 2 +- api_docs/kbn_core_ui_settings_browser.mdx | 2 +- .../kbn_core_ui_settings_browser_internal.mdx | 2 +- .../kbn_core_ui_settings_browser_mocks.mdx | 2 +- api_docs/kbn_core_ui_settings_common.mdx | 2 +- api_docs/kbn_core_ui_settings_server.mdx | 2 +- .../kbn_core_ui_settings_server_internal.mdx | 2 +- .../kbn_core_ui_settings_server_mocks.mdx | 2 +- api_docs/kbn_core_usage_data_server.mdx | 2 +- .../kbn_core_usage_data_server_internal.mdx | 2 +- api_docs/kbn_core_usage_data_server_mocks.mdx | 2 +- api_docs/kbn_core_user_settings_server.mdx | 2 +- ...kbn_core_user_settings_server_internal.mdx | 2 +- .../kbn_core_user_settings_server_mocks.mdx | 2 +- api_docs/kbn_crypto.mdx | 2 +- api_docs/kbn_crypto_browser.mdx | 2 +- api_docs/kbn_custom_icons.mdx | 2 +- api_docs/kbn_custom_integrations.mdx | 2 +- api_docs/kbn_cypress_config.mdx | 2 +- api_docs/kbn_data_service.mdx | 2 +- api_docs/kbn_datemath.mdx | 2 +- api_docs/kbn_deeplinks_analytics.mdx | 2 +- api_docs/kbn_deeplinks_devtools.mdx | 2 +- api_docs/kbn_deeplinks_management.mdx | 2 +- api_docs/kbn_deeplinks_ml.mdx | 2 +- api_docs/kbn_deeplinks_observability.mdx | 2 +- api_docs/kbn_deeplinks_search.mdx | 2 +- api_docs/kbn_default_nav_analytics.mdx | 2 +- api_docs/kbn_default_nav_devtools.mdx | 2 +- api_docs/kbn_default_nav_management.mdx | 2 +- api_docs/kbn_default_nav_ml.mdx | 2 +- api_docs/kbn_dev_cli_errors.mdx | 2 +- api_docs/kbn_dev_cli_runner.mdx | 2 +- api_docs/kbn_dev_proc_runner.mdx | 2 +- api_docs/kbn_dev_utils.mdx | 2 +- api_docs/kbn_discover_utils.mdx | 2 +- api_docs/kbn_doc_links.mdx | 2 +- api_docs/kbn_docs_utils.mdx | 2 +- api_docs/kbn_dom_drag_drop.mdx | 2 +- api_docs/kbn_ebt_tools.mdx | 2 +- api_docs/kbn_ecs.mdx | 2 +- api_docs/kbn_ecs_data_quality_dashboard.mdx | 2 +- api_docs/kbn_elastic_agent_utils.mdx | 2 +- api_docs/kbn_elastic_assistant.mdx | 2 +- api_docs/kbn_elastic_assistant_common.mdx | 2 +- api_docs/kbn_es.mdx | 2 +- api_docs/kbn_es_archiver.mdx | 2 +- api_docs/kbn_es_errors.mdx | 2 +- api_docs/kbn_es_query.mdx | 2 +- api_docs/kbn_es_types.mdx | 2 +- api_docs/kbn_eslint_plugin_imports.mdx | 2 +- api_docs/kbn_event_annotation_common.mdx | 2 +- api_docs/kbn_event_annotation_components.mdx | 2 +- api_docs/kbn_expandable_flyout.mdx | 2 +- api_docs/kbn_field_types.mdx | 2 +- api_docs/kbn_field_utils.mdx | 2 +- api_docs/kbn_find_used_node_modules.mdx | 2 +- .../kbn_ftr_common_functional_services.mdx | 2 +- ...common_functional_ui_services.devdocs.json | 2247 ++++++++++++++++- .../kbn_ftr_common_functional_ui_services.mdx | 4 +- api_docs/kbn_generate.mdx | 2 +- api_docs/kbn_generate_console_definitions.mdx | 2 +- api_docs/kbn_generate_csv.mdx | 2 +- api_docs/kbn_guided_onboarding.mdx | 2 +- api_docs/kbn_handlebars.mdx | 2 +- api_docs/kbn_hapi_mocks.mdx | 2 +- api_docs/kbn_health_gateway_server.mdx | 2 +- api_docs/kbn_home_sample_data_card.mdx | 2 +- api_docs/kbn_home_sample_data_tab.mdx | 2 +- api_docs/kbn_i18n.mdx | 2 +- api_docs/kbn_i18n_react.mdx | 2 +- api_docs/kbn_import_resolver.mdx | 2 +- api_docs/kbn_infra_forge.mdx | 2 +- api_docs/kbn_interpreter.mdx | 2 +- api_docs/kbn_io_ts_utils.mdx | 2 +- api_docs/kbn_jest_serializers.mdx | 2 +- api_docs/kbn_journeys.mdx | 2 +- api_docs/kbn_json_ast.mdx | 2 +- api_docs/kbn_kibana_manifest_schema.mdx | 2 +- .../kbn_language_documentation_popover.mdx | 2 +- api_docs/kbn_lens_embeddable_utils.mdx | 2 +- api_docs/kbn_lens_formula_docs.mdx | 2 +- api_docs/kbn_logging.mdx | 2 +- api_docs/kbn_logging_mocks.mdx | 2 +- api_docs/kbn_managed_vscode_config.mdx | 2 +- api_docs/kbn_management_cards_navigation.mdx | 2 +- .../kbn_management_settings_application.mdx | 2 +- ...ent_settings_components_field_category.mdx | 2 +- ...gement_settings_components_field_input.mdx | 2 +- ...nagement_settings_components_field_row.mdx | 2 +- ...bn_management_settings_components_form.mdx | 2 +- ...n_management_settings_field_definition.mdx | 2 +- api_docs/kbn_management_settings_ids.mdx | 2 +- ...n_management_settings_section_registry.mdx | 2 +- api_docs/kbn_management_settings_types.mdx | 2 +- .../kbn_management_settings_utilities.mdx | 2 +- api_docs/kbn_management_storybook_config.mdx | 2 +- api_docs/kbn_mapbox_gl.mdx | 2 +- api_docs/kbn_maps_vector_tile_utils.mdx | 2 +- api_docs/kbn_ml_agg_utils.mdx | 2 +- api_docs/kbn_ml_anomaly_utils.mdx | 2 +- api_docs/kbn_ml_category_validator.mdx | 2 +- api_docs/kbn_ml_chi2test.mdx | 2 +- .../kbn_ml_data_frame_analytics_utils.mdx | 2 +- api_docs/kbn_ml_data_grid.mdx | 2 +- api_docs/kbn_ml_date_picker.mdx | 2 +- api_docs/kbn_ml_date_utils.mdx | 2 +- api_docs/kbn_ml_error_utils.mdx | 2 +- api_docs/kbn_ml_in_memory_table.mdx | 2 +- api_docs/kbn_ml_is_defined.mdx | 2 +- api_docs/kbn_ml_is_populated_object.mdx | 2 +- api_docs/kbn_ml_kibana_theme.mdx | 2 +- api_docs/kbn_ml_local_storage.mdx | 2 +- api_docs/kbn_ml_nested_property.mdx | 2 +- api_docs/kbn_ml_number_utils.mdx | 2 +- api_docs/kbn_ml_query_utils.mdx | 2 +- api_docs/kbn_ml_random_sampler_utils.mdx | 2 +- api_docs/kbn_ml_route_utils.mdx | 2 +- api_docs/kbn_ml_runtime_field_utils.mdx | 2 +- api_docs/kbn_ml_string_hash.mdx | 2 +- api_docs/kbn_ml_trained_models_utils.mdx | 2 +- api_docs/kbn_ml_ui_actions.mdx | 2 +- api_docs/kbn_ml_url_state.mdx | 2 +- api_docs/kbn_monaco.mdx | 2 +- api_docs/kbn_object_versioning.mdx | 2 +- api_docs/kbn_observability_alert_details.mdx | 2 +- .../kbn_observability_alerting_test_data.mdx | 2 +- ...ility_get_padded_alert_time_range_util.mdx | 2 +- api_docs/kbn_openapi_bundler.mdx | 2 +- api_docs/kbn_openapi_generator.mdx | 2 +- api_docs/kbn_optimizer.mdx | 2 +- api_docs/kbn_optimizer_webpack_helpers.mdx | 2 +- api_docs/kbn_osquery_io_ts_types.mdx | 2 +- api_docs/kbn_panel_loader.mdx | 2 +- ..._performance_testing_dataset_extractor.mdx | 2 +- api_docs/kbn_plugin_generator.mdx | 2 +- api_docs/kbn_plugin_helpers.mdx | 2 +- api_docs/kbn_profiling_utils.mdx | 2 +- api_docs/kbn_random_sampling.mdx | 2 +- api_docs/kbn_react_field.mdx | 2 +- api_docs/kbn_react_kibana_context_common.mdx | 2 +- api_docs/kbn_react_kibana_context_render.mdx | 2 +- api_docs/kbn_react_kibana_context_root.mdx | 2 +- api_docs/kbn_react_kibana_context_styled.mdx | 2 +- api_docs/kbn_react_kibana_context_theme.mdx | 2 +- api_docs/kbn_react_kibana_mount.mdx | 2 +- api_docs/kbn_repo_file_maps.mdx | 2 +- api_docs/kbn_repo_linter.mdx | 2 +- api_docs/kbn_repo_path.mdx | 2 +- api_docs/kbn_repo_source_classifier.mdx | 2 +- api_docs/kbn_reporting_common.mdx | 2 +- api_docs/kbn_reporting_export_types_csv.mdx | 2 +- .../kbn_reporting_export_types_csv_common.mdx | 2 +- api_docs/kbn_reporting_export_types_pdf.mdx | 2 +- .../kbn_reporting_export_types_pdf_common.mdx | 2 +- api_docs/kbn_reporting_export_types_png.mdx | 2 +- .../kbn_reporting_export_types_png_common.mdx | 2 +- api_docs/kbn_reporting_mocks_server.mdx | 2 +- api_docs/kbn_reporting_public.mdx | 2 +- api_docs/kbn_reporting_server.mdx | 2 +- api_docs/kbn_resizable_layout.mdx | 2 +- api_docs/kbn_rison.mdx | 2 +- api_docs/kbn_router_utils.mdx | 2 +- api_docs/kbn_rrule.mdx | 2 +- api_docs/kbn_rule_data_utils.devdocs.json | 6 +- api_docs/kbn_rule_data_utils.mdx | 2 +- api_docs/kbn_saved_objects_settings.mdx | 2 +- api_docs/kbn_search_api_panels.mdx | 2 +- api_docs/kbn_search_connectors.mdx | 2 +- api_docs/kbn_search_errors.mdx | 2 +- api_docs/kbn_search_index_documents.mdx | 2 +- api_docs/kbn_search_response_warnings.mdx | 2 +- api_docs/kbn_security_plugin_types_common.mdx | 2 +- api_docs/kbn_security_plugin_types_public.mdx | 2 +- api_docs/kbn_security_plugin_types_server.mdx | 2 +- api_docs/kbn_security_solution_features.mdx | 2 +- api_docs/kbn_security_solution_navigation.mdx | 2 +- api_docs/kbn_security_solution_side_nav.mdx | 2 +- ...kbn_security_solution_storybook_config.mdx | 2 +- .../kbn_securitysolution_autocomplete.mdx | 2 +- api_docs/kbn_securitysolution_data_table.mdx | 2 +- api_docs/kbn_securitysolution_ecs.mdx | 2 +- api_docs/kbn_securitysolution_es_utils.mdx | 2 +- ...ritysolution_exception_list_components.mdx | 2 +- api_docs/kbn_securitysolution_grouping.mdx | 2 +- api_docs/kbn_securitysolution_hook_utils.mdx | 2 +- ..._securitysolution_io_ts_alerting_types.mdx | 2 +- .../kbn_securitysolution_io_ts_list_types.mdx | 2 +- api_docs/kbn_securitysolution_io_ts_types.mdx | 2 +- api_docs/kbn_securitysolution_io_ts_utils.mdx | 2 +- api_docs/kbn_securitysolution_list_api.mdx | 2 +- .../kbn_securitysolution_list_constants.mdx | 2 +- api_docs/kbn_securitysolution_list_hooks.mdx | 2 +- api_docs/kbn_securitysolution_list_utils.mdx | 2 +- api_docs/kbn_securitysolution_rules.mdx | 2 +- api_docs/kbn_securitysolution_t_grid.mdx | 2 +- api_docs/kbn_securitysolution_utils.mdx | 2 +- api_docs/kbn_server_http_tools.mdx | 2 +- api_docs/kbn_server_route_repository.mdx | 2 +- api_docs/kbn_serverless_common_settings.mdx | 2 +- .../kbn_serverless_observability_settings.mdx | 2 +- api_docs/kbn_serverless_project_switcher.mdx | 2 +- api_docs/kbn_serverless_search_settings.mdx | 2 +- api_docs/kbn_serverless_security_settings.mdx | 2 +- api_docs/kbn_serverless_storybook_config.mdx | 2 +- api_docs/kbn_shared_svg.mdx | 2 +- api_docs/kbn_shared_ux_avatar_solution.mdx | 2 +- .../kbn_shared_ux_button_exit_full_screen.mdx | 2 +- api_docs/kbn_shared_ux_button_toolbar.mdx | 2 +- api_docs/kbn_shared_ux_card_no_data.mdx | 2 +- api_docs/kbn_shared_ux_card_no_data_mocks.mdx | 2 +- api_docs/kbn_shared_ux_chrome_navigation.mdx | 2 +- api_docs/kbn_shared_ux_error_boundary.mdx | 2 +- api_docs/kbn_shared_ux_file_context.mdx | 2 +- api_docs/kbn_shared_ux_file_image.mdx | 2 +- api_docs/kbn_shared_ux_file_image_mocks.mdx | 2 +- api_docs/kbn_shared_ux_file_mocks.mdx | 2 +- api_docs/kbn_shared_ux_file_picker.mdx | 2 +- api_docs/kbn_shared_ux_file_types.mdx | 2 +- api_docs/kbn_shared_ux_file_upload.mdx | 2 +- api_docs/kbn_shared_ux_file_util.mdx | 2 +- api_docs/kbn_shared_ux_link_redirect_app.mdx | 2 +- .../kbn_shared_ux_link_redirect_app_mocks.mdx | 2 +- api_docs/kbn_shared_ux_markdown.mdx | 2 +- api_docs/kbn_shared_ux_markdown_mocks.mdx | 2 +- .../kbn_shared_ux_page_analytics_no_data.mdx | 2 +- ...shared_ux_page_analytics_no_data_mocks.mdx | 2 +- .../kbn_shared_ux_page_kibana_no_data.mdx | 2 +- ...bn_shared_ux_page_kibana_no_data_mocks.mdx | 2 +- .../kbn_shared_ux_page_kibana_template.mdx | 2 +- ...n_shared_ux_page_kibana_template_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_no_data.mdx | 2 +- .../kbn_shared_ux_page_no_data_config.mdx | 2 +- ...bn_shared_ux_page_no_data_config_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_no_data_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_solution_nav.mdx | 2 +- .../kbn_shared_ux_prompt_no_data_views.mdx | 2 +- ...n_shared_ux_prompt_no_data_views_mocks.mdx | 2 +- api_docs/kbn_shared_ux_prompt_not_found.mdx | 2 +- api_docs/kbn_shared_ux_router.mdx | 2 +- api_docs/kbn_shared_ux_router_mocks.mdx | 2 +- api_docs/kbn_shared_ux_storybook_config.mdx | 2 +- api_docs/kbn_shared_ux_storybook_mock.mdx | 2 +- api_docs/kbn_shared_ux_utility.mdx | 2 +- api_docs/kbn_slo_schema.mdx | 2 +- api_docs/kbn_some_dev_log.mdx | 2 +- api_docs/kbn_std.mdx | 2 +- api_docs/kbn_stdio_dev_helpers.mdx | 2 +- api_docs/kbn_storybook.mdx | 2 +- api_docs/kbn_telemetry_tools.mdx | 2 +- api_docs/kbn_test.mdx | 2 +- api_docs/kbn_test_eui_helpers.mdx | 2 +- api_docs/kbn_test_jest_helpers.mdx | 2 +- api_docs/kbn_test_subj_selector.mdx | 2 +- api_docs/kbn_text_based_editor.mdx | 2 +- api_docs/kbn_tooling_log.mdx | 2 +- api_docs/kbn_triggers_actions_ui_types.mdx | 2 +- api_docs/kbn_ts_projects.mdx | 2 +- api_docs/kbn_typed_react_router_config.mdx | 2 +- api_docs/kbn_ui_actions_browser.mdx | 2 +- api_docs/kbn_ui_shared_deps_src.mdx | 2 +- api_docs/kbn_ui_theme.mdx | 2 +- api_docs/kbn_unified_data_table.mdx | 2 +- api_docs/kbn_unified_doc_viewer.mdx | 2 +- api_docs/kbn_unified_field_list.devdocs.json | 140 +- api_docs/kbn_unified_field_list.mdx | 4 +- api_docs/kbn_unsaved_changes_badge.mdx | 2 +- api_docs/kbn_url_state.mdx | 2 +- api_docs/kbn_use_tracked_promise.mdx | 2 +- api_docs/kbn_user_profile_components.mdx | 2 +- api_docs/kbn_utility_types.mdx | 2 +- api_docs/kbn_utility_types_jest.mdx | 2 +- api_docs/kbn_utils.mdx | 2 +- ...n_visualization_ui_components.devdocs.json | 4 +- api_docs/kbn_visualization_ui_components.mdx | 2 +- api_docs/kbn_visualization_utils.mdx | 2 +- api_docs/kbn_xstate_utils.mdx | 2 +- api_docs/kbn_yarn_lock_validator.mdx | 2 +- api_docs/kbn_zod_helpers.mdx | 2 +- api_docs/kibana_overview.mdx | 2 +- api_docs/kibana_react.mdx | 2 +- api_docs/kibana_utils.mdx | 2 +- api_docs/kubernetes_security.mdx | 2 +- api_docs/lens.mdx | 2 +- api_docs/license_api_guard.mdx | 2 +- api_docs/license_management.mdx | 2 +- api_docs/licensing.mdx | 2 +- api_docs/links.mdx | 2 +- api_docs/lists.mdx | 2 +- api_docs/log_explorer.mdx | 2 +- api_docs/logs_shared.mdx | 2 +- api_docs/management.mdx | 2 +- api_docs/maps.mdx | 2 +- api_docs/maps_ems.mdx | 2 +- api_docs/metrics_data_access.mdx | 2 +- api_docs/ml.mdx | 2 +- api_docs/mock_idp_plugin.mdx | 2 +- api_docs/monitoring.mdx | 2 +- api_docs/monitoring_collection.mdx | 2 +- api_docs/navigation.mdx | 2 +- api_docs/newsfeed.mdx | 2 +- api_docs/no_data_page.mdx | 2 +- api_docs/notifications.mdx | 2 +- api_docs/observability.mdx | 2 +- api_docs/observability_a_i_assistant.mdx | 2 +- api_docs/observability_log_explorer.mdx | 2 +- api_docs/observability_onboarding.mdx | 2 +- api_docs/observability_shared.mdx | 2 +- api_docs/osquery.mdx | 2 +- api_docs/painless_lab.mdx | 2 +- api_docs/plugin_directory.mdx | 18 +- api_docs/presentation_util.mdx | 2 +- api_docs/profiling.mdx | 2 +- api_docs/profiling_data_access.mdx | 2 +- api_docs/remote_clusters.mdx | 2 +- api_docs/reporting.mdx | 2 +- api_docs/rollup.mdx | 2 +- api_docs/rule_registry.devdocs.json | 2 +- api_docs/rule_registry.mdx | 2 +- api_docs/runtime_fields.mdx | 2 +- api_docs/saved_objects.mdx | 2 +- api_docs/saved_objects_finder.mdx | 2 +- api_docs/saved_objects_management.mdx | 2 +- api_docs/saved_objects_tagging.mdx | 2 +- api_docs/saved_objects_tagging_oss.mdx | 2 +- api_docs/saved_search.mdx | 2 +- api_docs/screenshot_mode.mdx | 2 +- api_docs/screenshotting.mdx | 2 +- api_docs/security.mdx | 2 +- api_docs/security_solution.mdx | 2 +- api_docs/security_solution_ess.mdx | 2 +- api_docs/security_solution_serverless.mdx | 2 +- api_docs/serverless.mdx | 2 +- api_docs/serverless_observability.mdx | 2 +- api_docs/serverless_search.mdx | 2 +- api_docs/session_view.mdx | 2 +- api_docs/share.mdx | 2 +- api_docs/snapshot_restore.mdx | 2 +- api_docs/spaces.mdx | 2 +- api_docs/stack_alerts.mdx | 2 +- api_docs/stack_connectors.mdx | 2 +- api_docs/task_manager.mdx | 2 +- api_docs/telemetry.mdx | 2 +- api_docs/telemetry_collection_manager.mdx | 2 +- api_docs/telemetry_collection_xpack.mdx | 2 +- api_docs/telemetry_management_section.mdx | 2 +- api_docs/text_based_languages.mdx | 2 +- api_docs/threat_intelligence.mdx | 2 +- api_docs/timelines.mdx | 2 +- api_docs/transform.mdx | 2 +- api_docs/triggers_actions_ui.mdx | 2 +- api_docs/ui_actions.mdx | 2 +- api_docs/ui_actions_enhanced.mdx | 2 +- api_docs/unified_doc_viewer.mdx | 2 +- api_docs/unified_histogram.mdx | 2 +- api_docs/unified_search.mdx | 2 +- api_docs/unified_search_autocomplete.mdx | 2 +- api_docs/uptime.mdx | 2 +- api_docs/url_forwarding.mdx | 2 +- api_docs/usage_collection.mdx | 2 +- api_docs/ux.mdx | 2 +- api_docs/vis_default_editor.mdx | 2 +- api_docs/vis_type_gauge.mdx | 2 +- api_docs/vis_type_heatmap.mdx | 2 +- api_docs/vis_type_pie.mdx | 2 +- api_docs/vis_type_table.mdx | 2 +- api_docs/vis_type_timelion.mdx | 2 +- api_docs/vis_type_timeseries.mdx | 2 +- api_docs/vis_type_vega.mdx | 2 +- api_docs/vis_type_vislib.mdx | 2 +- api_docs/vis_type_xy.mdx | 2 +- api_docs/visualizations.mdx | 2 +- 650 files changed, 3131 insertions(+), 1091 deletions(-) delete mode 100644 api_docs/kbn_analytics_shippers_gainsight.devdocs.json delete mode 100644 api_docs/kbn_analytics_shippers_gainsight.mdx diff --git a/api_docs/actions.mdx b/api_docs/actions.mdx index 56f1f60f02f85..37311a1117eaa 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-09 +date: 2024-01-10 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 543fae5ec4202..2c7fda78ad22f 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-09 +date: 2024-01-10 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 8d49a11d24691..3d50b05455c63 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-09 +date: 2024-01-10 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 dc746878b589c..2fcd1aab173e2 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-09 +date: 2024-01-10 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 cde0cc09b3b57..e331d3245ec3f 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-09 +date: 2024-01-10 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 1c8c1df0579bf..10ba3cab7e67c 100644 --- a/api_docs/alerting.devdocs.json +++ b/api_docs/alerting.devdocs.json @@ -5204,6 +5204,70 @@ } ], "objects": [ + { + "parentPluginId": "alerting", + "id": "def-server.DEFAULT_AAD_CONFIG", + "type": "Object", + "tags": [], + "label": "DEFAULT_AAD_CONFIG", + "description": [], + "path": "x-pack/plugins/alerting/server/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "alerting", + "id": "def-server.DEFAULT_AAD_CONFIG.context", + "type": "string", + "tags": [], + "label": "context", + "description": [], + "path": "x-pack/plugins/alerting/server/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "alerting", + "id": "def-server.DEFAULT_AAD_CONFIG.mappings", + "type": "Object", + "tags": [], + "label": "mappings", + "description": [], + "path": "x-pack/plugins/alerting/server/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "alerting", + "id": "def-server.DEFAULT_AAD_CONFIG.mappings.fieldMap", + "type": "Object", + "tags": [], + "label": "fieldMap", + "description": [], + "path": "x-pack/plugins/alerting/server/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [] + } + ] + }, + { + "parentPluginId": "alerting", + "id": "def-server.DEFAULT_AAD_CONFIG.shouldWrite", + "type": "boolean", + "tags": [], + "label": "shouldWrite", + "description": [], + "signature": [ + "true" + ], + "path": "x-pack/plugins/alerting/server/types.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "alerting", "id": "def-server.DEFAULT_ALERTS_ILM_POLICY", diff --git a/api_docs/alerting.mdx b/api_docs/alerting.mdx index 90bbec942d740..5ca8fd85d66ba 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-09 +date: 2024-01-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'alerting'] --- import alertingObj from './alerting.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-o | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 825 | 1 | 794 | 51 | +| 830 | 1 | 799 | 51 | ## Client diff --git a/api_docs/apm.mdx b/api_docs/apm.mdx index db26ff3b9dda8..dd1b46de8ad50 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-09 +date: 2024-01-10 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 8f4e0de97ea83..10ad5ac6c37ab 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-09 +date: 2024-01-10 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 c8a5cd737f941..9d4c98df902cf 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-09 +date: 2024-01-10 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 00591025d710e..975e3ad660f78 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-09 +date: 2024-01-10 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 6ad2c59925000..2c6dd87c56c61 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-09 +date: 2024-01-10 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 73b099532c1f3..f5517086ee89e 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-09 +date: 2024-01-10 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 032a01d60ddfb..92a1e539c0042 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-09 +date: 2024-01-10 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 0c8c34cef9aec..467d4a4c9218b 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-09 +date: 2024-01-10 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 d261a7b3225e2..bf0dfa6cda57e 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-09 +date: 2024-01-10 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 122df4662a0f9..11906dbc05878 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-09 +date: 2024-01-10 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 26b5a6d0330ca..ce00cc475c2b1 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-09 +date: 2024-01-10 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 d2eab5ad76d6e..7da787d83bad1 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-09 +date: 2024-01-10 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 ec5a874957ce8..7c5b56eccc636 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-09 +date: 2024-01-10 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 0a71fa0ff09af..a6b7c560fb138 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-09 +date: 2024-01-10 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 6f5be12de7f2a..819603e6739c0 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-09 +date: 2024-01-10 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 0d013d29fb116..662ca61fa2f43 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-09 +date: 2024-01-10 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 e3fe2d6bccea4..cef59ad030b97 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-09 +date: 2024-01-10 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 f3b6223321987..b49c6a775010f 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-09 +date: 2024-01-10 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 f50e8b51a019d..afd0826473fa3 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-09 +date: 2024-01-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dashboardEnhanced'] --- import dashboardEnhancedObj from './dashboard_enhanced.devdocs.json'; diff --git a/api_docs/data.mdx b/api_docs/data.mdx index 2ff39fbbc6dc2..b021bb1a870be 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-09 +date: 2024-01-10 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 5eb3a555b4413..4a91dff9e5ac0 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-09 +date: 2024-01-10 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 1ed90f36e0d47..46c6dac010a49 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-09 +date: 2024-01-10 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 b3fab160e4046..7dac7dde2517c 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-09 +date: 2024-01-10 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 c7bc6d215db22..9a25b3b24f664 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-09 +date: 2024-01-10 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 911151180ddff..b875fce98de8c 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-09 +date: 2024-01-10 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 6bb52d6e1d8c8..4cb9b30f77f7d 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-09 +date: 2024-01-10 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 c8726767453ec..1435479ce30de 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-09 +date: 2024-01-10 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 0951b828015b2..919d7bf6fb4c9 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-09 +date: 2024-01-10 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 8265347c8e900..ea92df2e15356 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-09 +date: 2024-01-10 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/deprecations_by_plugin.mdx b/api_docs/deprecations_by_plugin.mdx index dcacd1501a0c3..b9ced5cc13149 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-09 +date: 2024-01-10 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/deprecations_by_team.mdx b/api_docs/deprecations_by_team.mdx index 1e5923d53a321..fb18ce4120c55 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-09 +date: 2024-01-10 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/dev_tools.mdx b/api_docs/dev_tools.mdx index 35028e32f866f..30bf478366328 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-09 +date: 2024-01-10 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 cd26cfa2daee5..3a4087ba083d2 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-09 +date: 2024-01-10 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 d254c9e35ee74..298a67edcb2e5 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-09 +date: 2024-01-10 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 2c7a49602c0f4..09be335f66d93 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-09 +date: 2024-01-10 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 d97d525f2aa97..71fc68dd078d1 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-09 +date: 2024-01-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'elasticAssistant'] --- import elasticAssistantObj from './elastic_assistant.devdocs.json'; diff --git a/api_docs/embeddable.mdx b/api_docs/embeddable.mdx index fbfb0fac3487f..c0c3c2c2c4229 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-09 +date: 2024-01-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'embeddable'] --- import embeddableObj from './embeddable.devdocs.json'; diff --git a/api_docs/embeddable_enhanced.mdx b/api_docs/embeddable_enhanced.mdx index 0c13b40494b06..289bfa4a1ac33 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-09 +date: 2024-01-10 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 dff8155e24fbe..6776f021b7003 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-09 +date: 2024-01-10 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 739caf93e2a24..da6d37bec956b 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-09 +date: 2024-01-10 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 2458f8a670b9a..581d8a270d38c 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-09 +date: 2024-01-10 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 38a25c0749c58..fb6dcffa6d46a 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-09 +date: 2024-01-10 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 b17d1d6a2cc95..a57e05a944fba 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-09 +date: 2024-01-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventAnnotationListing'] --- import eventAnnotationListingObj from './event_annotation_listing.devdocs.json'; diff --git a/api_docs/event_log.devdocs.json b/api_docs/event_log.devdocs.json index a86c89ba5fa8b..272cafa59d5a0 100644 --- a/api_docs/event_log.devdocs.json +++ b/api_docs/event_log.devdocs.json @@ -805,6 +805,21 @@ "deprecated": false, "trackAdoption": false, "children": [ + { + "parentPluginId": "eventLog", + "id": "def-server.AggregateEventsBySavedObjectResult.hits", + "type": "Object", + "tags": [], + "label": "hits", + "description": [], + "signature": [ + "SearchHitsMetadata", + " | undefined" + ], + "path": "x-pack/plugins/event_log/server/es/cluster_client_adapter.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "eventLog", "id": "def-server.AggregateEventsBySavedObjectResult.aggregations", diff --git a/api_docs/event_log.mdx b/api_docs/event_log.mdx index 286011d765e0e..98da9ac7758df 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-09 +date: 2024-01-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventLog'] --- import eventLogObj from './event_log.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-o | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 111 | 0 | 111 | 11 | +| 112 | 0 | 112 | 11 | ## Server diff --git a/api_docs/exploratory_view.mdx b/api_docs/exploratory_view.mdx index 48d4c2ed20944..6d9057010a29b 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-09 +date: 2024-01-10 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 04a243eb4b9c1..c7c55c2f64984 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-09 +date: 2024-01-10 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 3d3fb7d206bc9..b07eed8fc3d95 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-09 +date: 2024-01-10 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 d476a8ce98173..4789652461f07 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-09 +date: 2024-01-10 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 b25867ace482d..fd364eb9d39b7 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-09 +date: 2024-01-10 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 4e5f9be51e010..ddc2fa6486e71 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-09 +date: 2024-01-10 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 94fcfab024229..c850f78e32b67 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-09 +date: 2024-01-10 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 44135de299aca..8b0f255fab477 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-09 +date: 2024-01-10 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 17143322603ab..d69e1c51483f3 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-09 +date: 2024-01-10 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 a0a16952fcc29..df29b64e8d8e8 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-09 +date: 2024-01-10 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 183c6ac6e701d..62fc315c40aac 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-09 +date: 2024-01-10 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 ed00a5ff9d38b..deadc51c7c1fb 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-09 +date: 2024-01-10 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 40ad816fcab82..f2f812ac8d410 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-09 +date: 2024-01-10 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 68f50510e71eb..12c3bd130f635 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-09 +date: 2024-01-10 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 d33ea837fcf2c..4973b690f2436 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-09 +date: 2024-01-10 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 cdcec73c90f45..d0f2f22275d29 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-09 +date: 2024-01-10 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 404d8b499ff4b..4d2a42c6e9abc 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-09 +date: 2024-01-10 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 2fdf1275c7669..c9dddfcfc14af 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-09 +date: 2024-01-10 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 4c2b30f3e6b17..a2ffa9095418a 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-09 +date: 2024-01-10 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 6e82b62c93990..1c381fae8445c 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-09 +date: 2024-01-10 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 50c5d7c06a779..97f1605a626dd 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-09 +date: 2024-01-10 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 3e94037f0bed6..2b85d761ba2e2 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-09 +date: 2024-01-10 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 f5f7021d61656..3dcbf750dd67b 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-09 +date: 2024-01-10 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 0576770c98946..6f830aada63dd 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-09 +date: 2024-01-10 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 eda650f7862d2..d30811c7234ef 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-09 +date: 2024-01-10 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 e6400f8171edf..ca3b78ff1833c 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-09 +date: 2024-01-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'indexLifecycleManagement'] --- import indexLifecycleManagementObj from './index_lifecycle_management.devdocs.json'; diff --git a/api_docs/index_management.devdocs.json b/api_docs/index_management.devdocs.json index f3af751475dc7..54c259862cbf5 100644 --- a/api_docs/index_management.devdocs.json +++ b/api_docs/index_management.devdocs.json @@ -3256,7 +3256,7 @@ "label": "TemplateType", "description": [], "signature": [ - "\"managed\" | \"default\" | \"system\" | \"cloudManaged\"" + "\"default\" | \"managed\" | \"system\" | \"cloudManaged\"" ], "path": "x-pack/plugins/index_management/common/types/templates.ts", "deprecated": false, diff --git a/api_docs/index_management.mdx b/api_docs/index_management.mdx index 552f23000f59c..b61b1a3448e2b 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-09 +date: 2024-01-10 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 53838b4151f00..ebc573d16aa11 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-09 +date: 2024-01-10 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 99e7464cfa146..24fb4e0730ea7 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-09 +date: 2024-01-10 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 2c4a40ef7ea7f..54cedda6d45e3 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-09 +date: 2024-01-10 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 8cc36a48c84a5..a9e425a94ecff 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-09 +date: 2024-01-10 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 c42d055521ed1..d6607609f2e27 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-09 +date: 2024-01-10 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 37cd779d75ae6..84b0d163b30fc 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-09 +date: 2024-01-10 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 047811ab9f102..27922d9f12aab 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-09 +date: 2024-01-10 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 5e29b389208b5..b10ca30e66e29 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-09 +date: 2024-01-10 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 dc68e7546a838..84c254d115be5 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-09 +date: 2024-01-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-api-integration-helpers'] --- import kbnAlertingApiIntegrationHelpersObj from './kbn_alerting_api_integration_helpers.devdocs.json'; diff --git a/api_docs/kbn_alerting_state_types.mdx b/api_docs/kbn_alerting_state_types.mdx index 03076b282127d..de953b960c504 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-09 +date: 2024-01-10 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 515f7e4ae162c..febf729214808 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-09 +date: 2024-01-10 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.devdocs.json b/api_docs/kbn_alerts_as_data_utils.devdocs.json index 5f26f2569b2f5..ea7bb8bc0111d 100644 --- a/api_docs/kbn_alerts_as_data_utils.devdocs.json +++ b/api_docs/kbn_alerts_as_data_utils.devdocs.json @@ -196,7 +196,7 @@ "label": "AADAlert", "description": [], "signature": [ - "({ '@timestamp': string | number; 'kibana.alert.instance.id': string; 'kibana.alert.rule.category': string; 'kibana.alert.rule.consumer': string; 'kibana.alert.rule.name': string; 'kibana.alert.rule.producer': string; 'kibana.alert.rule.revision': string | number; 'kibana.alert.rule.rule_type_id': string; 'kibana.alert.rule.uuid': string; 'kibana.alert.status': string; 'kibana.alert.uuid': string; 'kibana.space_ids': string[]; } & { 'event.action'?: string | undefined; 'event.kind'?: string | undefined; 'kibana.alert.action_group'?: string | undefined; 'kibana.alert.case_ids'?: string[] | undefined; 'kibana.alert.duration.us'?: string | number | undefined; 'kibana.alert.end'?: string | number | undefined; 'kibana.alert.flapping'?: boolean | undefined; 'kibana.alert.flapping_history'?: boolean[] | undefined; 'kibana.alert.last_detected'?: string | number | undefined; 'kibana.alert.maintenance_window_ids'?: string[] | undefined; 'kibana.alert.reason'?: string | undefined; 'kibana.alert.rule.execution.uuid'?: string | undefined; 'kibana.alert.rule.parameters'?: unknown; 'kibana.alert.rule.tags'?: string[] | undefined; 'kibana.alert.start'?: string | number | undefined; 'kibana.alert.time_range'?: { gte?: string | number | undefined; lte?: string | number | undefined; } | undefined; 'kibana.alert.url'?: string | undefined; 'kibana.alert.workflow_assignee_ids'?: string[] | undefined; 'kibana.alert.workflow_status'?: string | undefined; 'kibana.alert.workflow_tags'?: string[] | undefined; 'kibana.version'?: string | undefined; tags?: string[] | undefined; }) | ({} & { 'agent.name'?: string | undefined; 'error.grouping_key'?: string | undefined; 'error.grouping_name'?: string | undefined; 'kibana.alert.context'?: unknown; 'kibana.alert.evaluation.threshold'?: string | number | undefined; 'kibana.alert.evaluation.value'?: string | number | undefined; 'kibana.alert.evaluation.values'?: (string | number)[] | undefined; 'kibana.alert.group'?: { field?: string | undefined; value?: string | undefined; }[] | undefined; labels?: unknown; 'processor.event'?: string | undefined; 'service.environment'?: string | undefined; 'service.language.name'?: string | undefined; 'service.name'?: string | undefined; 'transaction.name'?: string | undefined; 'transaction.type'?: string | undefined; } & { '@timestamp': string | number; 'kibana.alert.instance.id': string; 'kibana.alert.rule.category': string; 'kibana.alert.rule.consumer': string; 'kibana.alert.rule.name': string; 'kibana.alert.rule.producer': string; 'kibana.alert.rule.revision': string | number; 'kibana.alert.rule.rule_type_id': string; 'kibana.alert.rule.uuid': string; 'kibana.alert.status': string; 'kibana.alert.uuid': string; 'kibana.space_ids': string[]; } & { 'event.action'?: string | undefined; 'event.kind'?: string | undefined; 'kibana.alert.action_group'?: string | undefined; 'kibana.alert.case_ids'?: string[] | undefined; 'kibana.alert.duration.us'?: string | number | undefined; 'kibana.alert.end'?: string | number | undefined; 'kibana.alert.flapping'?: boolean | undefined; 'kibana.alert.flapping_history'?: boolean[] | undefined; 'kibana.alert.last_detected'?: string | number | undefined; 'kibana.alert.maintenance_window_ids'?: string[] | undefined; 'kibana.alert.reason'?: string | undefined; 'kibana.alert.rule.execution.uuid'?: string | undefined; 'kibana.alert.rule.parameters'?: unknown; 'kibana.alert.rule.tags'?: string[] | undefined; 'kibana.alert.start'?: string | number | undefined; 'kibana.alert.time_range'?: { gte?: string | number | undefined; lte?: string | number | undefined; } | undefined; 'kibana.alert.url'?: string | undefined; 'kibana.alert.workflow_assignee_ids'?: string[] | undefined; 'kibana.alert.workflow_status'?: string | undefined; 'kibana.alert.workflow_tags'?: string[] | undefined; 'kibana.version'?: string | undefined; tags?: string[] | undefined; } & {} & { 'ecs.version'?: string | undefined; 'kibana.alert.risk_score'?: number | undefined; 'kibana.alert.rule.author'?: string | undefined; 'kibana.alert.rule.created_at'?: string | number | undefined; 'kibana.alert.rule.created_by'?: string | undefined; 'kibana.alert.rule.description'?: string | undefined; 'kibana.alert.rule.enabled'?: string | undefined; 'kibana.alert.rule.from'?: string | undefined; 'kibana.alert.rule.interval'?: string | undefined; 'kibana.alert.rule.license'?: string | undefined; 'kibana.alert.rule.note'?: string | undefined; 'kibana.alert.rule.references'?: string[] | undefined; 'kibana.alert.rule.rule_id'?: string | undefined; 'kibana.alert.rule.rule_name_override'?: string | undefined; 'kibana.alert.rule.to'?: string | undefined; 'kibana.alert.rule.type'?: string | undefined; 'kibana.alert.rule.updated_at'?: string | number | undefined; 'kibana.alert.rule.updated_by'?: string | undefined; 'kibana.alert.rule.version'?: string | undefined; 'kibana.alert.severity'?: string | undefined; 'kibana.alert.suppression.docs_count'?: string | number | undefined; 'kibana.alert.suppression.end'?: string | number | undefined; 'kibana.alert.suppression.start'?: string | number | undefined; 'kibana.alert.suppression.terms.field'?: string[] | undefined; 'kibana.alert.suppression.terms.value'?: string[] | undefined; 'kibana.alert.system_status'?: string | undefined; 'kibana.alert.workflow_reason'?: string | undefined; 'kibana.alert.workflow_status_updated_at'?: string | number | undefined; 'kibana.alert.workflow_user'?: string | undefined; }) | ({} & { 'kibana.alert.context'?: unknown; 'kibana.alert.evaluation.threshold'?: string | number | undefined; 'kibana.alert.evaluation.value'?: string | number | undefined; 'kibana.alert.evaluation.values'?: (string | number)[] | undefined; 'kibana.alert.group'?: { field?: string | undefined; value?: string | undefined; }[] | undefined; } & { '@timestamp': string | number; 'kibana.alert.instance.id': string; 'kibana.alert.rule.category': string; 'kibana.alert.rule.consumer': string; 'kibana.alert.rule.name': string; 'kibana.alert.rule.producer': string; 'kibana.alert.rule.revision': string | number; 'kibana.alert.rule.rule_type_id': string; 'kibana.alert.rule.uuid': string; 'kibana.alert.status': string; 'kibana.alert.uuid': string; 'kibana.space_ids': string[]; } & { 'event.action'?: string | undefined; 'event.kind'?: string | undefined; 'kibana.alert.action_group'?: string | undefined; 'kibana.alert.case_ids'?: string[] | undefined; 'kibana.alert.duration.us'?: string | number | undefined; 'kibana.alert.end'?: string | number | undefined; 'kibana.alert.flapping'?: boolean | undefined; 'kibana.alert.flapping_history'?: boolean[] | undefined; 'kibana.alert.last_detected'?: string | number | undefined; 'kibana.alert.maintenance_window_ids'?: string[] | undefined; 'kibana.alert.reason'?: string | undefined; 'kibana.alert.rule.execution.uuid'?: string | undefined; 'kibana.alert.rule.parameters'?: unknown; 'kibana.alert.rule.tags'?: string[] | undefined; 'kibana.alert.start'?: string | number | undefined; 'kibana.alert.time_range'?: { gte?: string | number | undefined; lte?: string | number | undefined; } | undefined; 'kibana.alert.url'?: string | undefined; 'kibana.alert.workflow_assignee_ids'?: string[] | undefined; 'kibana.alert.workflow_status'?: string | undefined; 'kibana.alert.workflow_tags'?: string[] | undefined; 'kibana.version'?: string | undefined; tags?: string[] | undefined; } & { '@timestamp': string | number; 'ecs.version': string; } & { 'agent.build.original'?: string | undefined; 'agent.ephemeral_id'?: string | undefined; 'agent.id'?: string | undefined; 'agent.name'?: string | undefined; 'agent.type'?: string | undefined; 'agent.version'?: string | undefined; 'client.address'?: string | undefined; 'client.as.number'?: string | number | undefined; 'client.as.organization.name'?: string | undefined; 'client.bytes'?: string | number | undefined; 'client.domain'?: string | undefined; 'client.geo.city_name'?: string | undefined; 'client.geo.continent_code'?: string | undefined; 'client.geo.continent_name'?: string | undefined; 'client.geo.country_iso_code'?: string | undefined; 'client.geo.country_name'?: string | undefined; 'client.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'client.geo.name'?: string | undefined; 'client.geo.postal_code'?: string | undefined; 'client.geo.region_iso_code'?: string | undefined; 'client.geo.region_name'?: string | undefined; 'client.geo.timezone'?: string | undefined; 'client.ip'?: string | undefined; 'client.mac'?: string | undefined; 'client.nat.ip'?: string | undefined; 'client.nat.port'?: string | number | undefined; 'client.packets'?: string | number | undefined; 'client.port'?: string | number | undefined; 'client.registered_domain'?: string | undefined; 'client.subdomain'?: string | undefined; 'client.top_level_domain'?: string | undefined; 'client.user.domain'?: string | undefined; 'client.user.email'?: string | undefined; 'client.user.full_name'?: string | undefined; 'client.user.group.domain'?: string | undefined; 'client.user.group.id'?: string | undefined; 'client.user.group.name'?: string | undefined; 'client.user.hash'?: string | undefined; 'client.user.id'?: string | undefined; 'client.user.name'?: string | undefined; 'client.user.roles'?: string[] | undefined; 'cloud.account.id'?: string | undefined; 'cloud.account.name'?: string | undefined; 'cloud.availability_zone'?: string | undefined; 'cloud.instance.id'?: string | undefined; 'cloud.instance.name'?: string | undefined; 'cloud.machine.type'?: string | undefined; 'cloud.origin.account.id'?: string | undefined; 'cloud.origin.account.name'?: string | undefined; 'cloud.origin.availability_zone'?: string | undefined; 'cloud.origin.instance.id'?: string | undefined; 'cloud.origin.instance.name'?: string | undefined; 'cloud.origin.machine.type'?: string | undefined; 'cloud.origin.project.id'?: string | undefined; 'cloud.origin.project.name'?: string | undefined; 'cloud.origin.provider'?: string | undefined; 'cloud.origin.region'?: string | undefined; 'cloud.origin.service.name'?: string | undefined; 'cloud.project.id'?: string | undefined; 'cloud.project.name'?: string | undefined; 'cloud.provider'?: string | undefined; 'cloud.region'?: string | undefined; 'cloud.service.name'?: string | undefined; 'cloud.target.account.id'?: string | undefined; 'cloud.target.account.name'?: string | undefined; 'cloud.target.availability_zone'?: string | undefined; 'cloud.target.instance.id'?: string | undefined; 'cloud.target.instance.name'?: string | undefined; 'cloud.target.machine.type'?: string | undefined; 'cloud.target.project.id'?: string | undefined; 'cloud.target.project.name'?: string | undefined; 'cloud.target.provider'?: string | undefined; 'cloud.target.region'?: string | undefined; 'cloud.target.service.name'?: string | undefined; 'container.cpu.usage'?: string | number | undefined; 'container.disk.read.bytes'?: string | number | undefined; 'container.disk.write.bytes'?: string | number | undefined; 'container.id'?: string | undefined; 'container.image.hash.all'?: string[] | undefined; 'container.image.name'?: string | undefined; 'container.image.tag'?: string[] | undefined; 'container.labels'?: unknown; 'container.memory.usage'?: string | number | undefined; 'container.name'?: string | undefined; 'container.network.egress.bytes'?: string | number | undefined; 'container.network.ingress.bytes'?: string | number | undefined; 'container.runtime'?: string | undefined; 'destination.address'?: string | undefined; 'destination.as.number'?: string | number | undefined; 'destination.as.organization.name'?: string | undefined; 'destination.bytes'?: string | number | undefined; 'destination.domain'?: string | undefined; 'destination.geo.city_name'?: string | undefined; 'destination.geo.continent_code'?: string | undefined; 'destination.geo.continent_name'?: string | undefined; 'destination.geo.country_iso_code'?: string | undefined; 'destination.geo.country_name'?: string | undefined; 'destination.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'destination.geo.name'?: string | undefined; 'destination.geo.postal_code'?: string | undefined; 'destination.geo.region_iso_code'?: string | undefined; 'destination.geo.region_name'?: string | undefined; 'destination.geo.timezone'?: string | undefined; 'destination.ip'?: string | undefined; 'destination.mac'?: string | undefined; 'destination.nat.ip'?: string | undefined; 'destination.nat.port'?: string | number | undefined; 'destination.packets'?: string | number | undefined; 'destination.port'?: string | number | undefined; 'destination.registered_domain'?: string | undefined; 'destination.subdomain'?: string | undefined; 'destination.top_level_domain'?: string | undefined; 'destination.user.domain'?: string | undefined; 'destination.user.email'?: string | undefined; 'destination.user.full_name'?: string | undefined; 'destination.user.group.domain'?: string | undefined; 'destination.user.group.id'?: string | undefined; 'destination.user.group.name'?: string | undefined; 'destination.user.hash'?: string | undefined; 'destination.user.id'?: string | undefined; 'destination.user.name'?: string | undefined; 'destination.user.roles'?: string[] | undefined; 'device.id'?: string | undefined; 'device.manufacturer'?: string | undefined; 'device.model.identifier'?: string | undefined; 'device.model.name'?: string | undefined; 'dll.code_signature.digest_algorithm'?: string | undefined; 'dll.code_signature.exists'?: boolean | undefined; 'dll.code_signature.signing_id'?: string | undefined; 'dll.code_signature.status'?: string | undefined; 'dll.code_signature.subject_name'?: string | undefined; 'dll.code_signature.team_id'?: string | undefined; 'dll.code_signature.timestamp'?: string | number | undefined; 'dll.code_signature.trusted'?: boolean | undefined; 'dll.code_signature.valid'?: boolean | undefined; 'dll.hash.md5'?: string | undefined; 'dll.hash.sha1'?: string | undefined; 'dll.hash.sha256'?: string | undefined; 'dll.hash.sha384'?: string | undefined; 'dll.hash.sha512'?: string | undefined; 'dll.hash.ssdeep'?: string | undefined; 'dll.hash.tlsh'?: string | undefined; 'dll.name'?: string | undefined; 'dll.path'?: string | undefined; 'dll.pe.architecture'?: string | undefined; 'dll.pe.company'?: string | undefined; 'dll.pe.description'?: string | undefined; 'dll.pe.file_version'?: string | undefined; 'dll.pe.imphash'?: string | undefined; 'dll.pe.original_file_name'?: string | undefined; 'dll.pe.pehash'?: string | undefined; 'dll.pe.product'?: string | undefined; 'dns.answers'?: { class?: string | undefined; data?: string | undefined; name?: string | undefined; ttl?: string | number | undefined; type?: string | undefined; }[] | undefined; 'dns.header_flags'?: string[] | undefined; 'dns.id'?: string | undefined; 'dns.op_code'?: string | undefined; 'dns.question.class'?: string | undefined; 'dns.question.name'?: string | undefined; 'dns.question.registered_domain'?: string | undefined; 'dns.question.subdomain'?: string | undefined; 'dns.question.top_level_domain'?: string | undefined; 'dns.question.type'?: string | undefined; 'dns.resolved_ip'?: string[] | undefined; 'dns.response_code'?: string | undefined; 'dns.type'?: string | undefined; 'email.attachments'?: { 'file.extension'?: string | undefined; 'file.hash.md5'?: string | undefined; 'file.hash.sha1'?: string | undefined; 'file.hash.sha256'?: string | undefined; 'file.hash.sha384'?: string | undefined; 'file.hash.sha512'?: string | undefined; 'file.hash.ssdeep'?: string | undefined; 'file.hash.tlsh'?: string | undefined; 'file.mime_type'?: string | undefined; 'file.name'?: string | undefined; 'file.size'?: string | number | undefined; }[] | undefined; 'email.bcc.address'?: string[] | undefined; 'email.cc.address'?: string[] | undefined; 'email.content_type'?: string | undefined; 'email.delivery_timestamp'?: string | number | undefined; 'email.direction'?: string | undefined; 'email.from.address'?: string[] | undefined; 'email.local_id'?: string | undefined; 'email.message_id'?: string | undefined; 'email.origination_timestamp'?: string | number | undefined; 'email.reply_to.address'?: string[] | undefined; 'email.sender.address'?: string | undefined; 'email.subject'?: string | undefined; 'email.to.address'?: string[] | undefined; 'email.x_mailer'?: string | undefined; 'error.code'?: string | undefined; 'error.id'?: string | undefined; 'error.message'?: string | undefined; 'error.stack_trace'?: string | undefined; 'error.type'?: string | undefined; 'event.action'?: string | undefined; 'event.agent_id_status'?: string | undefined; 'event.category'?: string[] | undefined; 'event.code'?: string | undefined; 'event.created'?: string | number | undefined; 'event.dataset'?: string | undefined; 'event.duration'?: string | number | undefined; 'event.end'?: string | number | undefined; 'event.hash'?: string | undefined; 'event.id'?: string | undefined; 'event.ingested'?: string | number | undefined; 'event.kind'?: string | undefined; 'event.module'?: string | undefined; 'event.original'?: string | undefined; 'event.outcome'?: string | undefined; 'event.provider'?: string | undefined; 'event.reason'?: string | undefined; 'event.reference'?: string | undefined; 'event.risk_score'?: number | undefined; 'event.risk_score_norm'?: number | undefined; 'event.sequence'?: string | number | undefined; 'event.severity'?: string | number | undefined; 'event.start'?: string | number | undefined; 'event.timezone'?: string | undefined; 'event.type'?: string[] | undefined; 'event.url'?: string | undefined; 'faas.coldstart'?: boolean | undefined; 'faas.execution'?: string | undefined; 'faas.id'?: string | undefined; 'faas.name'?: string | undefined; 'faas.version'?: string | undefined; 'file.accessed'?: string | number | undefined; 'file.attributes'?: string[] | undefined; 'file.code_signature.digest_algorithm'?: string | undefined; 'file.code_signature.exists'?: boolean | undefined; 'file.code_signature.signing_id'?: string | undefined; 'file.code_signature.status'?: string | undefined; 'file.code_signature.subject_name'?: string | undefined; 'file.code_signature.team_id'?: string | undefined; 'file.code_signature.timestamp'?: string | number | undefined; 'file.code_signature.trusted'?: boolean | undefined; 'file.code_signature.valid'?: boolean | undefined; 'file.created'?: string | number | undefined; 'file.ctime'?: string | number | undefined; 'file.device'?: string | undefined; 'file.directory'?: string | undefined; 'file.drive_letter'?: string | undefined; 'file.elf.architecture'?: string | undefined; 'file.elf.byte_order'?: string | undefined; 'file.elf.cpu_type'?: string | undefined; 'file.elf.creation_date'?: string | number | undefined; 'file.elf.exports'?: unknown[] | undefined; 'file.elf.header.abi_version'?: string | undefined; 'file.elf.header.class'?: string | undefined; 'file.elf.header.data'?: string | undefined; 'file.elf.header.entrypoint'?: string | number | undefined; 'file.elf.header.object_version'?: string | undefined; 'file.elf.header.os_abi'?: string | undefined; 'file.elf.header.type'?: string | undefined; 'file.elf.header.version'?: string | undefined; 'file.elf.imports'?: unknown[] | undefined; 'file.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'file.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'file.elf.shared_libraries'?: string[] | undefined; 'file.elf.telfhash'?: string | undefined; 'file.extension'?: string | undefined; 'file.fork_name'?: string | undefined; 'file.gid'?: string | undefined; 'file.group'?: string | undefined; 'file.hash.md5'?: string | undefined; 'file.hash.sha1'?: string | undefined; 'file.hash.sha256'?: string | undefined; 'file.hash.sha384'?: string | undefined; 'file.hash.sha512'?: string | undefined; 'file.hash.ssdeep'?: string | undefined; 'file.hash.tlsh'?: string | undefined; 'file.inode'?: string | undefined; 'file.mime_type'?: string | undefined; 'file.mode'?: string | undefined; 'file.mtime'?: string | number | undefined; 'file.name'?: string | undefined; 'file.owner'?: string | undefined; 'file.path'?: string | undefined; 'file.pe.architecture'?: string | undefined; 'file.pe.company'?: string | undefined; 'file.pe.description'?: string | undefined; 'file.pe.file_version'?: string | undefined; 'file.pe.imphash'?: string | undefined; 'file.pe.original_file_name'?: string | undefined; 'file.pe.pehash'?: string | undefined; 'file.pe.product'?: string | undefined; 'file.size'?: string | number | undefined; 'file.target_path'?: string | undefined; 'file.type'?: string | undefined; 'file.uid'?: string | undefined; 'file.x509.alternative_names'?: string[] | undefined; 'file.x509.issuer.common_name'?: string[] | undefined; 'file.x509.issuer.country'?: string[] | undefined; 'file.x509.issuer.distinguished_name'?: string | undefined; 'file.x509.issuer.locality'?: string[] | undefined; 'file.x509.issuer.organization'?: string[] | undefined; 'file.x509.issuer.organizational_unit'?: string[] | undefined; 'file.x509.issuer.state_or_province'?: string[] | undefined; 'file.x509.not_after'?: string | number | undefined; 'file.x509.not_before'?: string | number | undefined; 'file.x509.public_key_algorithm'?: string | undefined; 'file.x509.public_key_curve'?: string | undefined; 'file.x509.public_key_exponent'?: string | number | undefined; 'file.x509.public_key_size'?: string | number | undefined; 'file.x509.serial_number'?: string | undefined; 'file.x509.signature_algorithm'?: string | undefined; 'file.x509.subject.common_name'?: string[] | undefined; 'file.x509.subject.country'?: string[] | undefined; 'file.x509.subject.distinguished_name'?: string | undefined; 'file.x509.subject.locality'?: string[] | undefined; 'file.x509.subject.organization'?: string[] | undefined; 'file.x509.subject.organizational_unit'?: string[] | undefined; 'file.x509.subject.state_or_province'?: string[] | undefined; 'file.x509.version_number'?: string | undefined; 'group.domain'?: string | undefined; 'group.id'?: string | undefined; 'group.name'?: string | undefined; 'host.architecture'?: string | undefined; 'host.boot.id'?: string | undefined; 'host.cpu.usage'?: string | number | undefined; 'host.disk.read.bytes'?: string | number | undefined; 'host.disk.write.bytes'?: string | number | undefined; 'host.domain'?: string | undefined; 'host.geo.city_name'?: string | undefined; 'host.geo.continent_code'?: string | undefined; 'host.geo.continent_name'?: string | undefined; 'host.geo.country_iso_code'?: string | undefined; 'host.geo.country_name'?: string | undefined; 'host.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'host.geo.name'?: string | undefined; 'host.geo.postal_code'?: string | undefined; 'host.geo.region_iso_code'?: string | undefined; 'host.geo.region_name'?: string | undefined; 'host.geo.timezone'?: string | undefined; 'host.hostname'?: string | undefined; 'host.id'?: string | undefined; 'host.ip'?: string[] | undefined; 'host.mac'?: string[] | undefined; 'host.name'?: string | undefined; 'host.network.egress.bytes'?: string | number | undefined; 'host.network.egress.packets'?: string | number | undefined; 'host.network.ingress.bytes'?: string | number | undefined; 'host.network.ingress.packets'?: string | number | undefined; 'host.os.family'?: string | undefined; 'host.os.full'?: string | undefined; 'host.os.kernel'?: string | undefined; 'host.os.name'?: string | undefined; 'host.os.platform'?: string | undefined; 'host.os.type'?: string | undefined; 'host.os.version'?: string | undefined; 'host.pid_ns_ino'?: string | undefined; 'host.risk.calculated_level'?: string | undefined; 'host.risk.calculated_score'?: number | undefined; 'host.risk.calculated_score_norm'?: number | undefined; 'host.risk.static_level'?: string | undefined; 'host.risk.static_score'?: number | undefined; 'host.risk.static_score_norm'?: number | undefined; 'host.type'?: string | undefined; 'host.uptime'?: string | number | undefined; 'http.request.body.bytes'?: string | number | undefined; 'http.request.body.content'?: string | undefined; 'http.request.bytes'?: string | number | undefined; 'http.request.id'?: string | undefined; 'http.request.method'?: string | undefined; 'http.request.mime_type'?: string | undefined; 'http.request.referrer'?: string | undefined; 'http.response.body.bytes'?: string | number | undefined; 'http.response.body.content'?: string | undefined; 'http.response.bytes'?: string | number | undefined; 'http.response.mime_type'?: string | undefined; 'http.response.status_code'?: string | number | undefined; 'http.version'?: string | undefined; labels?: unknown; 'log.file.path'?: string | undefined; 'log.level'?: string | undefined; 'log.logger'?: string | undefined; 'log.origin.file.line'?: string | number | undefined; 'log.origin.file.name'?: string | undefined; 'log.origin.function'?: string | undefined; 'log.syslog'?: unknown; message?: string | undefined; 'network.application'?: string | undefined; 'network.bytes'?: string | number | undefined; 'network.community_id'?: string | undefined; 'network.direction'?: string | undefined; 'network.forwarded_ip'?: string | undefined; 'network.iana_number'?: string | undefined; 'network.inner'?: unknown; 'network.name'?: string | undefined; 'network.packets'?: string | number | undefined; 'network.protocol'?: string | undefined; 'network.transport'?: string | undefined; 'network.type'?: string | undefined; 'network.vlan.id'?: string | undefined; 'network.vlan.name'?: string | undefined; 'observer.egress'?: unknown; 'observer.geo.city_name'?: string | undefined; 'observer.geo.continent_code'?: string | undefined; 'observer.geo.continent_name'?: string | undefined; 'observer.geo.country_iso_code'?: string | undefined; 'observer.geo.country_name'?: string | undefined; 'observer.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'observer.geo.name'?: string | undefined; 'observer.geo.postal_code'?: string | undefined; 'observer.geo.region_iso_code'?: string | undefined; 'observer.geo.region_name'?: string | undefined; 'observer.geo.timezone'?: string | undefined; 'observer.hostname'?: string | undefined; 'observer.ingress'?: unknown; 'observer.ip'?: string[] | undefined; 'observer.mac'?: string[] | undefined; 'observer.name'?: string | undefined; 'observer.os.family'?: string | undefined; 'observer.os.full'?: string | undefined; 'observer.os.kernel'?: string | undefined; 'observer.os.name'?: string | undefined; 'observer.os.platform'?: string | undefined; 'observer.os.type'?: string | undefined; 'observer.os.version'?: string | undefined; 'observer.product'?: string | undefined; 'observer.serial_number'?: string | undefined; 'observer.type'?: string | undefined; 'observer.vendor'?: string | undefined; 'observer.version'?: string | undefined; 'orchestrator.api_version'?: string | undefined; 'orchestrator.cluster.id'?: string | undefined; 'orchestrator.cluster.name'?: string | undefined; 'orchestrator.cluster.url'?: string | undefined; 'orchestrator.cluster.version'?: string | undefined; 'orchestrator.namespace'?: string | undefined; 'orchestrator.organization'?: string | undefined; 'orchestrator.resource.id'?: string | undefined; 'orchestrator.resource.ip'?: string[] | undefined; 'orchestrator.resource.name'?: string | undefined; 'orchestrator.resource.parent.type'?: string | undefined; 'orchestrator.resource.type'?: string | undefined; 'orchestrator.type'?: string | undefined; 'organization.id'?: string | undefined; 'organization.name'?: string | undefined; 'package.architecture'?: string | undefined; 'package.build_version'?: string | undefined; 'package.checksum'?: string | undefined; 'package.description'?: string | undefined; 'package.install_scope'?: string | undefined; 'package.installed'?: string | number | undefined; 'package.license'?: string | undefined; 'package.name'?: string | undefined; 'package.path'?: string | undefined; 'package.reference'?: string | undefined; 'package.size'?: string | number | undefined; 'package.type'?: string | undefined; 'package.version'?: string | undefined; 'process.args'?: string[] | undefined; 'process.args_count'?: string | number | undefined; 'process.code_signature.digest_algorithm'?: string | undefined; 'process.code_signature.exists'?: boolean | undefined; 'process.code_signature.signing_id'?: string | undefined; 'process.code_signature.status'?: string | undefined; 'process.code_signature.subject_name'?: string | undefined; 'process.code_signature.team_id'?: string | undefined; 'process.code_signature.timestamp'?: string | number | undefined; 'process.code_signature.trusted'?: boolean | undefined; 'process.code_signature.valid'?: boolean | undefined; 'process.command_line'?: string | undefined; 'process.elf.architecture'?: string | undefined; 'process.elf.byte_order'?: string | undefined; 'process.elf.cpu_type'?: string | undefined; 'process.elf.creation_date'?: string | number | undefined; 'process.elf.exports'?: unknown[] | undefined; 'process.elf.header.abi_version'?: string | undefined; 'process.elf.header.class'?: string | undefined; 'process.elf.header.data'?: string | undefined; 'process.elf.header.entrypoint'?: string | number | undefined; 'process.elf.header.object_version'?: string | undefined; 'process.elf.header.os_abi'?: string | undefined; 'process.elf.header.type'?: string | undefined; 'process.elf.header.version'?: string | undefined; 'process.elf.imports'?: unknown[] | undefined; 'process.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'process.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'process.elf.shared_libraries'?: string[] | undefined; 'process.elf.telfhash'?: string | undefined; 'process.end'?: string | number | undefined; 'process.entity_id'?: string | undefined; 'process.entry_leader.args'?: string[] | undefined; 'process.entry_leader.args_count'?: string | number | undefined; 'process.entry_leader.attested_groups.name'?: string | undefined; 'process.entry_leader.attested_user.id'?: string | undefined; 'process.entry_leader.attested_user.name'?: string | undefined; 'process.entry_leader.command_line'?: string | undefined; 'process.entry_leader.entity_id'?: string | undefined; 'process.entry_leader.entry_meta.source.ip'?: string | undefined; 'process.entry_leader.entry_meta.type'?: string | undefined; 'process.entry_leader.executable'?: string | undefined; 'process.entry_leader.group.id'?: string | undefined; 'process.entry_leader.group.name'?: string | undefined; 'process.entry_leader.interactive'?: boolean | undefined; 'process.entry_leader.name'?: string | undefined; 'process.entry_leader.parent.entity_id'?: string | undefined; 'process.entry_leader.parent.pid'?: string | number | undefined; 'process.entry_leader.parent.session_leader.entity_id'?: string | undefined; 'process.entry_leader.parent.session_leader.pid'?: string | number | undefined; 'process.entry_leader.parent.session_leader.start'?: string | number | undefined; 'process.entry_leader.parent.start'?: string | number | undefined; 'process.entry_leader.pid'?: string | number | undefined; 'process.entry_leader.real_group.id'?: string | undefined; 'process.entry_leader.real_group.name'?: string | undefined; 'process.entry_leader.real_user.id'?: string | undefined; 'process.entry_leader.real_user.name'?: string | undefined; 'process.entry_leader.same_as_process'?: boolean | undefined; 'process.entry_leader.saved_group.id'?: string | undefined; 'process.entry_leader.saved_group.name'?: string | undefined; 'process.entry_leader.saved_user.id'?: string | undefined; 'process.entry_leader.saved_user.name'?: string | undefined; 'process.entry_leader.start'?: string | number | undefined; 'process.entry_leader.supplemental_groups.id'?: string | undefined; 'process.entry_leader.supplemental_groups.name'?: string | undefined; 'process.entry_leader.tty'?: unknown; 'process.entry_leader.user.id'?: string | undefined; 'process.entry_leader.user.name'?: string | undefined; 'process.entry_leader.working_directory'?: string | undefined; 'process.env_vars'?: string[] | undefined; 'process.executable'?: string | undefined; 'process.exit_code'?: string | number | undefined; 'process.group_leader.args'?: string[] | undefined; 'process.group_leader.args_count'?: string | number | undefined; 'process.group_leader.command_line'?: string | undefined; 'process.group_leader.entity_id'?: string | undefined; 'process.group_leader.executable'?: string | undefined; 'process.group_leader.group.id'?: string | undefined; 'process.group_leader.group.name'?: string | undefined; 'process.group_leader.interactive'?: boolean | undefined; 'process.group_leader.name'?: string | undefined; 'process.group_leader.pid'?: string | number | undefined; 'process.group_leader.real_group.id'?: string | undefined; 'process.group_leader.real_group.name'?: string | undefined; 'process.group_leader.real_user.id'?: string | undefined; 'process.group_leader.real_user.name'?: string | undefined; 'process.group_leader.same_as_process'?: boolean | undefined; 'process.group_leader.saved_group.id'?: string | undefined; 'process.group_leader.saved_group.name'?: string | undefined; 'process.group_leader.saved_user.id'?: string | undefined; 'process.group_leader.saved_user.name'?: string | undefined; 'process.group_leader.start'?: string | number | undefined; 'process.group_leader.supplemental_groups.id'?: string | undefined; 'process.group_leader.supplemental_groups.name'?: string | undefined; 'process.group_leader.tty'?: unknown; 'process.group_leader.user.id'?: string | undefined; 'process.group_leader.user.name'?: string | undefined; 'process.group_leader.working_directory'?: string | undefined; 'process.hash.md5'?: string | undefined; 'process.hash.sha1'?: string | undefined; 'process.hash.sha256'?: string | undefined; 'process.hash.sha384'?: string | undefined; 'process.hash.sha512'?: string | undefined; 'process.hash.ssdeep'?: string | undefined; 'process.hash.tlsh'?: string | undefined; 'process.interactive'?: boolean | undefined; 'process.io'?: unknown; 'process.name'?: string | undefined; 'process.parent.args'?: string[] | undefined; 'process.parent.args_count'?: string | number | undefined; 'process.parent.code_signature.digest_algorithm'?: string | undefined; 'process.parent.code_signature.exists'?: boolean | undefined; 'process.parent.code_signature.signing_id'?: string | undefined; 'process.parent.code_signature.status'?: string | undefined; 'process.parent.code_signature.subject_name'?: string | undefined; 'process.parent.code_signature.team_id'?: string | undefined; 'process.parent.code_signature.timestamp'?: string | number | undefined; 'process.parent.code_signature.trusted'?: boolean | undefined; 'process.parent.code_signature.valid'?: boolean | undefined; 'process.parent.command_line'?: string | undefined; 'process.parent.elf.architecture'?: string | undefined; 'process.parent.elf.byte_order'?: string | undefined; 'process.parent.elf.cpu_type'?: string | undefined; 'process.parent.elf.creation_date'?: string | number | undefined; 'process.parent.elf.exports'?: unknown[] | undefined; 'process.parent.elf.header.abi_version'?: string | undefined; 'process.parent.elf.header.class'?: string | undefined; 'process.parent.elf.header.data'?: string | undefined; 'process.parent.elf.header.entrypoint'?: string | number | undefined; 'process.parent.elf.header.object_version'?: string | undefined; 'process.parent.elf.header.os_abi'?: string | undefined; 'process.parent.elf.header.type'?: string | undefined; 'process.parent.elf.header.version'?: string | undefined; 'process.parent.elf.imports'?: unknown[] | undefined; 'process.parent.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'process.parent.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'process.parent.elf.shared_libraries'?: string[] | undefined; 'process.parent.elf.telfhash'?: string | undefined; 'process.parent.end'?: string | number | undefined; 'process.parent.entity_id'?: string | undefined; 'process.parent.executable'?: string | undefined; 'process.parent.exit_code'?: string | number | undefined; 'process.parent.group.id'?: string | undefined; 'process.parent.group.name'?: string | undefined; 'process.parent.group_leader.entity_id'?: string | undefined; 'process.parent.group_leader.pid'?: string | number | undefined; 'process.parent.group_leader.start'?: string | number | undefined; 'process.parent.hash.md5'?: string | undefined; 'process.parent.hash.sha1'?: string | undefined; 'process.parent.hash.sha256'?: string | undefined; 'process.parent.hash.sha384'?: string | undefined; 'process.parent.hash.sha512'?: string | undefined; 'process.parent.hash.ssdeep'?: string | undefined; 'process.parent.hash.tlsh'?: string | undefined; 'process.parent.interactive'?: boolean | undefined; 'process.parent.name'?: string | undefined; 'process.parent.pe.architecture'?: string | undefined; 'process.parent.pe.company'?: string | undefined; 'process.parent.pe.description'?: string | undefined; 'process.parent.pe.file_version'?: string | undefined; 'process.parent.pe.imphash'?: string | undefined; 'process.parent.pe.original_file_name'?: string | undefined; 'process.parent.pe.pehash'?: string | undefined; 'process.parent.pe.product'?: string | undefined; 'process.parent.pgid'?: string | number | undefined; 'process.parent.pid'?: string | number | undefined; 'process.parent.real_group.id'?: string | undefined; 'process.parent.real_group.name'?: string | undefined; 'process.parent.real_user.id'?: string | undefined; 'process.parent.real_user.name'?: string | undefined; 'process.parent.saved_group.id'?: string | undefined; 'process.parent.saved_group.name'?: string | undefined; 'process.parent.saved_user.id'?: string | undefined; 'process.parent.saved_user.name'?: string | undefined; 'process.parent.start'?: string | number | undefined; 'process.parent.supplemental_groups.id'?: string | undefined; 'process.parent.supplemental_groups.name'?: string | undefined; 'process.parent.thread.id'?: string | number | undefined; 'process.parent.thread.name'?: string | undefined; 'process.parent.title'?: string | undefined; 'process.parent.tty'?: unknown; 'process.parent.uptime'?: string | number | undefined; 'process.parent.user.id'?: string | undefined; 'process.parent.user.name'?: string | undefined; 'process.parent.working_directory'?: string | undefined; 'process.pe.architecture'?: string | undefined; 'process.pe.company'?: string | undefined; 'process.pe.description'?: string | undefined; 'process.pe.file_version'?: string | undefined; 'process.pe.imphash'?: string | undefined; 'process.pe.original_file_name'?: string | undefined; 'process.pe.pehash'?: string | undefined; 'process.pe.product'?: string | undefined; 'process.pgid'?: string | number | undefined; 'process.pid'?: string | number | undefined; 'process.previous.args'?: string[] | undefined; 'process.previous.args_count'?: string | number | undefined; 'process.previous.executable'?: string | undefined; 'process.real_group.id'?: string | undefined; 'process.real_group.name'?: string | undefined; 'process.real_user.id'?: string | undefined; 'process.real_user.name'?: string | undefined; 'process.saved_group.id'?: string | undefined; 'process.saved_group.name'?: string | undefined; 'process.saved_user.id'?: string | undefined; 'process.saved_user.name'?: string | undefined; 'process.session_leader.args'?: string[] | undefined; 'process.session_leader.args_count'?: string | number | undefined; 'process.session_leader.command_line'?: string | undefined; 'process.session_leader.entity_id'?: string | undefined; 'process.session_leader.executable'?: string | undefined; 'process.session_leader.group.id'?: string | undefined; 'process.session_leader.group.name'?: string | undefined; 'process.session_leader.interactive'?: boolean | undefined; 'process.session_leader.name'?: string | undefined; 'process.session_leader.parent.entity_id'?: string | undefined; 'process.session_leader.parent.pid'?: string | number | undefined; 'process.session_leader.parent.session_leader.entity_id'?: string | undefined; 'process.session_leader.parent.session_leader.pid'?: string | number | undefined; 'process.session_leader.parent.session_leader.start'?: string | number | undefined; 'process.session_leader.parent.start'?: string | number | undefined; 'process.session_leader.pid'?: string | number | undefined; 'process.session_leader.real_group.id'?: string | undefined; 'process.session_leader.real_group.name'?: string | undefined; 'process.session_leader.real_user.id'?: string | undefined; 'process.session_leader.real_user.name'?: string | undefined; 'process.session_leader.same_as_process'?: boolean | undefined; 'process.session_leader.saved_group.id'?: string | undefined; 'process.session_leader.saved_group.name'?: string | undefined; 'process.session_leader.saved_user.id'?: string | undefined; 'process.session_leader.saved_user.name'?: string | undefined; 'process.session_leader.start'?: string | number | undefined; 'process.session_leader.supplemental_groups.id'?: string | undefined; 'process.session_leader.supplemental_groups.name'?: string | undefined; 'process.session_leader.tty'?: unknown; 'process.session_leader.user.id'?: string | undefined; 'process.session_leader.user.name'?: string | undefined; 'process.session_leader.working_directory'?: string | undefined; 'process.start'?: string | number | undefined; 'process.supplemental_groups.id'?: string | undefined; 'process.supplemental_groups.name'?: string | undefined; 'process.thread.id'?: string | number | undefined; 'process.thread.name'?: string | undefined; 'process.title'?: string | undefined; 'process.tty'?: unknown; 'process.uptime'?: string | number | undefined; 'process.user.id'?: string | undefined; 'process.user.name'?: string | undefined; 'process.working_directory'?: string | undefined; 'registry.data.bytes'?: string | undefined; 'registry.data.strings'?: string[] | undefined; 'registry.data.type'?: string | undefined; 'registry.hive'?: string | undefined; 'registry.key'?: string | undefined; 'registry.path'?: string | undefined; 'registry.value'?: string | undefined; 'related.hash'?: string[] | undefined; 'related.hosts'?: string[] | undefined; 'related.ip'?: string[] | undefined; 'related.user'?: string[] | undefined; 'rule.author'?: string[] | undefined; 'rule.category'?: string | undefined; 'rule.description'?: string | undefined; 'rule.id'?: string | undefined; 'rule.license'?: string | undefined; 'rule.name'?: string | undefined; 'rule.reference'?: string | undefined; 'rule.ruleset'?: string | undefined; 'rule.uuid'?: string | undefined; 'rule.version'?: string | undefined; 'server.address'?: string | undefined; 'server.as.number'?: string | number | undefined; 'server.as.organization.name'?: string | undefined; 'server.bytes'?: string | number | undefined; 'server.domain'?: string | undefined; 'server.geo.city_name'?: string | undefined; 'server.geo.continent_code'?: string | undefined; 'server.geo.continent_name'?: string | undefined; 'server.geo.country_iso_code'?: string | undefined; 'server.geo.country_name'?: string | undefined; 'server.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'server.geo.name'?: string | undefined; 'server.geo.postal_code'?: string | undefined; 'server.geo.region_iso_code'?: string | undefined; 'server.geo.region_name'?: string | undefined; 'server.geo.timezone'?: string | undefined; 'server.ip'?: string | undefined; 'server.mac'?: string | undefined; 'server.nat.ip'?: string | undefined; 'server.nat.port'?: string | number | undefined; 'server.packets'?: string | number | undefined; 'server.port'?: string | number | undefined; 'server.registered_domain'?: string | undefined; 'server.subdomain'?: string | undefined; 'server.top_level_domain'?: string | undefined; 'server.user.domain'?: string | undefined; 'server.user.email'?: string | undefined; 'server.user.full_name'?: string | undefined; 'server.user.group.domain'?: string | undefined; 'server.user.group.id'?: string | undefined; 'server.user.group.name'?: string | undefined; 'server.user.hash'?: string | undefined; 'server.user.id'?: string | undefined; 'server.user.name'?: string | undefined; 'server.user.roles'?: string[] | undefined; 'service.address'?: string | undefined; 'service.environment'?: string | undefined; 'service.ephemeral_id'?: string | undefined; 'service.id'?: string | undefined; 'service.name'?: string | undefined; 'service.node.name'?: string | undefined; 'service.node.role'?: string | undefined; 'service.node.roles'?: string[] | undefined; 'service.origin.address'?: string | undefined; 'service.origin.environment'?: string | undefined; 'service.origin.ephemeral_id'?: string | undefined; 'service.origin.id'?: string | undefined; 'service.origin.name'?: string | undefined; 'service.origin.node.name'?: string | undefined; 'service.origin.node.role'?: string | undefined; 'service.origin.node.roles'?: string[] | undefined; 'service.origin.state'?: string | undefined; 'service.origin.type'?: string | undefined; 'service.origin.version'?: string | undefined; 'service.state'?: string | undefined; 'service.target.address'?: string | undefined; 'service.target.environment'?: string | undefined; 'service.target.ephemeral_id'?: string | undefined; 'service.target.id'?: string | undefined; 'service.target.name'?: string | undefined; 'service.target.node.name'?: string | undefined; 'service.target.node.role'?: string | undefined; 'service.target.node.roles'?: string[] | undefined; 'service.target.state'?: string | undefined; 'service.target.type'?: string | undefined; 'service.target.version'?: string | undefined; 'service.type'?: string | undefined; 'service.version'?: string | undefined; 'source.address'?: string | undefined; 'source.as.number'?: string | number | undefined; 'source.as.organization.name'?: string | undefined; 'source.bytes'?: string | number | undefined; 'source.domain'?: string | undefined; 'source.geo.city_name'?: string | undefined; 'source.geo.continent_code'?: string | undefined; 'source.geo.continent_name'?: string | undefined; 'source.geo.country_iso_code'?: string | undefined; 'source.geo.country_name'?: string | undefined; 'source.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'source.geo.name'?: string | undefined; 'source.geo.postal_code'?: string | undefined; 'source.geo.region_iso_code'?: string | undefined; 'source.geo.region_name'?: string | undefined; 'source.geo.timezone'?: string | undefined; 'source.ip'?: string | undefined; 'source.mac'?: string | undefined; 'source.nat.ip'?: string | undefined; 'source.nat.port'?: string | number | undefined; 'source.packets'?: string | number | undefined; 'source.port'?: string | number | undefined; 'source.registered_domain'?: string | undefined; 'source.subdomain'?: string | undefined; 'source.top_level_domain'?: string | undefined; 'source.user.domain'?: string | undefined; 'source.user.email'?: string | undefined; 'source.user.full_name'?: string | undefined; 'source.user.group.domain'?: string | undefined; 'source.user.group.id'?: string | undefined; 'source.user.group.name'?: string | undefined; 'source.user.hash'?: string | undefined; 'source.user.id'?: string | undefined; 'source.user.name'?: string | undefined; 'source.user.roles'?: string[] | undefined; 'span.id'?: string | undefined; tags?: string[] | undefined; 'threat.enrichments'?: { indicator?: unknown; 'matched.atomic'?: string | undefined; 'matched.field'?: string | undefined; 'matched.id'?: string | undefined; 'matched.index'?: string | undefined; 'matched.occurred'?: string | number | undefined; 'matched.type'?: string | undefined; }[] | undefined; 'threat.feed.dashboard_id'?: string | undefined; 'threat.feed.description'?: string | undefined; 'threat.feed.name'?: string | undefined; 'threat.feed.reference'?: string | undefined; 'threat.framework'?: string | undefined; 'threat.group.alias'?: string[] | undefined; 'threat.group.id'?: string | undefined; 'threat.group.name'?: string | undefined; 'threat.group.reference'?: string | undefined; 'threat.indicator.as.number'?: string | number | undefined; 'threat.indicator.as.organization.name'?: string | undefined; 'threat.indicator.confidence'?: string | undefined; 'threat.indicator.description'?: string | undefined; 'threat.indicator.email.address'?: string | undefined; 'threat.indicator.file.accessed'?: string | number | undefined; 'threat.indicator.file.attributes'?: string[] | undefined; 'threat.indicator.file.code_signature.digest_algorithm'?: string | undefined; 'threat.indicator.file.code_signature.exists'?: boolean | undefined; 'threat.indicator.file.code_signature.signing_id'?: string | undefined; 'threat.indicator.file.code_signature.status'?: string | undefined; 'threat.indicator.file.code_signature.subject_name'?: string | undefined; 'threat.indicator.file.code_signature.team_id'?: string | undefined; 'threat.indicator.file.code_signature.timestamp'?: string | number | undefined; 'threat.indicator.file.code_signature.trusted'?: boolean | undefined; 'threat.indicator.file.code_signature.valid'?: boolean | undefined; 'threat.indicator.file.created'?: string | number | undefined; 'threat.indicator.file.ctime'?: string | number | undefined; 'threat.indicator.file.device'?: string | undefined; 'threat.indicator.file.directory'?: string | undefined; 'threat.indicator.file.drive_letter'?: string | undefined; 'threat.indicator.file.elf.architecture'?: string | undefined; 'threat.indicator.file.elf.byte_order'?: string | undefined; 'threat.indicator.file.elf.cpu_type'?: string | undefined; 'threat.indicator.file.elf.creation_date'?: string | number | undefined; 'threat.indicator.file.elf.exports'?: unknown[] | undefined; 'threat.indicator.file.elf.header.abi_version'?: string | undefined; 'threat.indicator.file.elf.header.class'?: string | undefined; 'threat.indicator.file.elf.header.data'?: string | undefined; 'threat.indicator.file.elf.header.entrypoint'?: string | number | undefined; 'threat.indicator.file.elf.header.object_version'?: string | undefined; 'threat.indicator.file.elf.header.os_abi'?: string | undefined; 'threat.indicator.file.elf.header.type'?: string | undefined; 'threat.indicator.file.elf.header.version'?: string | undefined; 'threat.indicator.file.elf.imports'?: unknown[] | undefined; 'threat.indicator.file.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'threat.indicator.file.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'threat.indicator.file.elf.shared_libraries'?: string[] | undefined; 'threat.indicator.file.elf.telfhash'?: string | undefined; 'threat.indicator.file.extension'?: string | undefined; 'threat.indicator.file.fork_name'?: string | undefined; 'threat.indicator.file.gid'?: string | undefined; 'threat.indicator.file.group'?: string | undefined; 'threat.indicator.file.hash.md5'?: string | undefined; 'threat.indicator.file.hash.sha1'?: string | undefined; 'threat.indicator.file.hash.sha256'?: string | undefined; 'threat.indicator.file.hash.sha384'?: string | undefined; 'threat.indicator.file.hash.sha512'?: string | undefined; 'threat.indicator.file.hash.ssdeep'?: string | undefined; 'threat.indicator.file.hash.tlsh'?: string | undefined; 'threat.indicator.file.inode'?: string | undefined; 'threat.indicator.file.mime_type'?: string | undefined; 'threat.indicator.file.mode'?: string | undefined; 'threat.indicator.file.mtime'?: string | number | undefined; 'threat.indicator.file.name'?: string | undefined; 'threat.indicator.file.owner'?: string | undefined; 'threat.indicator.file.path'?: string | undefined; 'threat.indicator.file.pe.architecture'?: string | undefined; 'threat.indicator.file.pe.company'?: string | undefined; 'threat.indicator.file.pe.description'?: string | undefined; 'threat.indicator.file.pe.file_version'?: string | undefined; 'threat.indicator.file.pe.imphash'?: string | undefined; 'threat.indicator.file.pe.original_file_name'?: string | undefined; 'threat.indicator.file.pe.pehash'?: string | undefined; 'threat.indicator.file.pe.product'?: string | undefined; 'threat.indicator.file.size'?: string | number | undefined; 'threat.indicator.file.target_path'?: string | undefined; 'threat.indicator.file.type'?: string | undefined; 'threat.indicator.file.uid'?: string | undefined; 'threat.indicator.file.x509.alternative_names'?: string[] | undefined; 'threat.indicator.file.x509.issuer.common_name'?: string[] | undefined; 'threat.indicator.file.x509.issuer.country'?: string[] | undefined; 'threat.indicator.file.x509.issuer.distinguished_name'?: string | undefined; 'threat.indicator.file.x509.issuer.locality'?: string[] | undefined; 'threat.indicator.file.x509.issuer.organization'?: string[] | undefined; 'threat.indicator.file.x509.issuer.organizational_unit'?: string[] | undefined; 'threat.indicator.file.x509.issuer.state_or_province'?: string[] | undefined; 'threat.indicator.file.x509.not_after'?: string | number | undefined; 'threat.indicator.file.x509.not_before'?: string | number | undefined; 'threat.indicator.file.x509.public_key_algorithm'?: string | undefined; 'threat.indicator.file.x509.public_key_curve'?: string | undefined; 'threat.indicator.file.x509.public_key_exponent'?: string | number | undefined; 'threat.indicator.file.x509.public_key_size'?: string | number | undefined; 'threat.indicator.file.x509.serial_number'?: string | undefined; 'threat.indicator.file.x509.signature_algorithm'?: string | undefined; 'threat.indicator.file.x509.subject.common_name'?: string[] | undefined; 'threat.indicator.file.x509.subject.country'?: string[] | undefined; 'threat.indicator.file.x509.subject.distinguished_name'?: string | undefined; 'threat.indicator.file.x509.subject.locality'?: string[] | undefined; 'threat.indicator.file.x509.subject.organization'?: string[] | undefined; 'threat.indicator.file.x509.subject.organizational_unit'?: string[] | undefined; 'threat.indicator.file.x509.subject.state_or_province'?: string[] | undefined; 'threat.indicator.file.x509.version_number'?: string | undefined; 'threat.indicator.first_seen'?: string | number | undefined; 'threat.indicator.geo.city_name'?: string | undefined; 'threat.indicator.geo.continent_code'?: string | undefined; 'threat.indicator.geo.continent_name'?: string | undefined; 'threat.indicator.geo.country_iso_code'?: string | undefined; 'threat.indicator.geo.country_name'?: string | undefined; 'threat.indicator.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'threat.indicator.geo.name'?: string | undefined; 'threat.indicator.geo.postal_code'?: string | undefined; 'threat.indicator.geo.region_iso_code'?: string | undefined; 'threat.indicator.geo.region_name'?: string | undefined; 'threat.indicator.geo.timezone'?: string | undefined; 'threat.indicator.ip'?: string | undefined; 'threat.indicator.last_seen'?: string | number | undefined; 'threat.indicator.marking.tlp'?: string | undefined; 'threat.indicator.marking.tlp_version'?: string | undefined; 'threat.indicator.modified_at'?: string | number | undefined; 'threat.indicator.port'?: string | number | undefined; 'threat.indicator.provider'?: string | undefined; 'threat.indicator.reference'?: string | undefined; 'threat.indicator.registry.data.bytes'?: string | undefined; 'threat.indicator.registry.data.strings'?: string[] | undefined; 'threat.indicator.registry.data.type'?: string | undefined; 'threat.indicator.registry.hive'?: string | undefined; 'threat.indicator.registry.key'?: string | undefined; 'threat.indicator.registry.path'?: string | undefined; 'threat.indicator.registry.value'?: string | undefined; 'threat.indicator.scanner_stats'?: string | number | undefined; 'threat.indicator.sightings'?: string | number | undefined; 'threat.indicator.type'?: string | undefined; 'threat.indicator.url.domain'?: string | undefined; 'threat.indicator.url.extension'?: string | undefined; 'threat.indicator.url.fragment'?: string | undefined; 'threat.indicator.url.full'?: string | undefined; 'threat.indicator.url.original'?: string | undefined; 'threat.indicator.url.password'?: string | undefined; 'threat.indicator.url.path'?: string | undefined; 'threat.indicator.url.port'?: string | number | undefined; 'threat.indicator.url.query'?: string | undefined; 'threat.indicator.url.registered_domain'?: string | undefined; 'threat.indicator.url.scheme'?: string | undefined; 'threat.indicator.url.subdomain'?: string | undefined; 'threat.indicator.url.top_level_domain'?: string | undefined; 'threat.indicator.url.username'?: string | undefined; 'threat.indicator.x509.alternative_names'?: string[] | undefined; 'threat.indicator.x509.issuer.common_name'?: string[] | undefined; 'threat.indicator.x509.issuer.country'?: string[] | undefined; 'threat.indicator.x509.issuer.distinguished_name'?: string | undefined; 'threat.indicator.x509.issuer.locality'?: string[] | undefined; 'threat.indicator.x509.issuer.organization'?: string[] | undefined; 'threat.indicator.x509.issuer.organizational_unit'?: string[] | undefined; 'threat.indicator.x509.issuer.state_or_province'?: string[] | undefined; 'threat.indicator.x509.not_after'?: string | number | undefined; 'threat.indicator.x509.not_before'?: string | number | undefined; 'threat.indicator.x509.public_key_algorithm'?: string | undefined; 'threat.indicator.x509.public_key_curve'?: string | undefined; 'threat.indicator.x509.public_key_exponent'?: string | number | undefined; 'threat.indicator.x509.public_key_size'?: string | number | undefined; 'threat.indicator.x509.serial_number'?: string | undefined; 'threat.indicator.x509.signature_algorithm'?: string | undefined; 'threat.indicator.x509.subject.common_name'?: string[] | undefined; 'threat.indicator.x509.subject.country'?: string[] | undefined; 'threat.indicator.x509.subject.distinguished_name'?: string | undefined; 'threat.indicator.x509.subject.locality'?: string[] | undefined; 'threat.indicator.x509.subject.organization'?: string[] | undefined; 'threat.indicator.x509.subject.organizational_unit'?: string[] | undefined; 'threat.indicator.x509.subject.state_or_province'?: string[] | undefined; 'threat.indicator.x509.version_number'?: string | undefined; 'threat.software.alias'?: string[] | undefined; 'threat.software.id'?: string | undefined; 'threat.software.name'?: string | undefined; 'threat.software.platforms'?: string[] | undefined; 'threat.software.reference'?: string | undefined; 'threat.software.type'?: string | undefined; 'threat.tactic.id'?: string[] | undefined; 'threat.tactic.name'?: string[] | undefined; 'threat.tactic.reference'?: string[] | undefined; 'threat.technique.id'?: string[] | undefined; 'threat.technique.name'?: string[] | undefined; 'threat.technique.reference'?: string[] | undefined; 'threat.technique.subtechnique.id'?: string[] | undefined; 'threat.technique.subtechnique.name'?: string[] | undefined; 'threat.technique.subtechnique.reference'?: string[] | undefined; 'tls.cipher'?: string | undefined; 'tls.client.certificate'?: string | undefined; 'tls.client.certificate_chain'?: string[] | undefined; 'tls.client.hash.md5'?: string | undefined; 'tls.client.hash.sha1'?: string | undefined; 'tls.client.hash.sha256'?: string | undefined; 'tls.client.issuer'?: string | undefined; 'tls.client.ja3'?: string | undefined; 'tls.client.not_after'?: string | number | undefined; 'tls.client.not_before'?: string | number | undefined; 'tls.client.server_name'?: string | undefined; 'tls.client.subject'?: string | undefined; 'tls.client.supported_ciphers'?: string[] | undefined; 'tls.client.x509.alternative_names'?: string[] | undefined; 'tls.client.x509.issuer.common_name'?: string[] | undefined; 'tls.client.x509.issuer.country'?: string[] | undefined; 'tls.client.x509.issuer.distinguished_name'?: string | undefined; 'tls.client.x509.issuer.locality'?: string[] | undefined; 'tls.client.x509.issuer.organization'?: string[] | undefined; 'tls.client.x509.issuer.organizational_unit'?: string[] | undefined; 'tls.client.x509.issuer.state_or_province'?: string[] | undefined; 'tls.client.x509.not_after'?: string | number | undefined; 'tls.client.x509.not_before'?: string | number | undefined; 'tls.client.x509.public_key_algorithm'?: string | undefined; 'tls.client.x509.public_key_curve'?: string | undefined; 'tls.client.x509.public_key_exponent'?: string | number | undefined; 'tls.client.x509.public_key_size'?: string | number | undefined; 'tls.client.x509.serial_number'?: string | undefined; 'tls.client.x509.signature_algorithm'?: string | undefined; 'tls.client.x509.subject.common_name'?: string[] | undefined; 'tls.client.x509.subject.country'?: string[] | undefined; 'tls.client.x509.subject.distinguished_name'?: string | undefined; 'tls.client.x509.subject.locality'?: string[] | undefined; 'tls.client.x509.subject.organization'?: string[] | undefined; 'tls.client.x509.subject.organizational_unit'?: string[] | undefined; 'tls.client.x509.subject.state_or_province'?: string[] | undefined; 'tls.client.x509.version_number'?: string | undefined; 'tls.curve'?: string | undefined; 'tls.established'?: boolean | undefined; 'tls.next_protocol'?: string | undefined; 'tls.resumed'?: boolean | undefined; 'tls.server.certificate'?: string | undefined; 'tls.server.certificate_chain'?: string[] | undefined; 'tls.server.hash.md5'?: string | undefined; 'tls.server.hash.sha1'?: string | undefined; 'tls.server.hash.sha256'?: string | undefined; 'tls.server.issuer'?: string | undefined; 'tls.server.ja3s'?: string | undefined; 'tls.server.not_after'?: string | number | undefined; 'tls.server.not_before'?: string | number | undefined; 'tls.server.subject'?: string | undefined; 'tls.server.x509.alternative_names'?: string[] | undefined; 'tls.server.x509.issuer.common_name'?: string[] | undefined; 'tls.server.x509.issuer.country'?: string[] | undefined; 'tls.server.x509.issuer.distinguished_name'?: string | undefined; 'tls.server.x509.issuer.locality'?: string[] | undefined; 'tls.server.x509.issuer.organization'?: string[] | undefined; 'tls.server.x509.issuer.organizational_unit'?: string[] | undefined; 'tls.server.x509.issuer.state_or_province'?: string[] | undefined; 'tls.server.x509.not_after'?: string | number | undefined; 'tls.server.x509.not_before'?: string | number | undefined; 'tls.server.x509.public_key_algorithm'?: string | undefined; 'tls.server.x509.public_key_curve'?: string | undefined; 'tls.server.x509.public_key_exponent'?: string | number | undefined; 'tls.server.x509.public_key_size'?: string | number | undefined; 'tls.server.x509.serial_number'?: string | undefined; 'tls.server.x509.signature_algorithm'?: string | undefined; 'tls.server.x509.subject.common_name'?: string[] | undefined; 'tls.server.x509.subject.country'?: string[] | undefined; 'tls.server.x509.subject.distinguished_name'?: string | undefined; 'tls.server.x509.subject.locality'?: string[] | undefined; 'tls.server.x509.subject.organization'?: string[] | undefined; 'tls.server.x509.subject.organizational_unit'?: string[] | undefined; 'tls.server.x509.subject.state_or_province'?: string[] | undefined; 'tls.server.x509.version_number'?: string | undefined; 'tls.version'?: string | undefined; 'tls.version_protocol'?: string | undefined; 'trace.id'?: string | undefined; 'transaction.id'?: string | undefined; 'url.domain'?: string | undefined; 'url.extension'?: string | undefined; 'url.fragment'?: string | undefined; 'url.full'?: string | undefined; 'url.original'?: string | undefined; 'url.password'?: string | undefined; 'url.path'?: string | undefined; 'url.port'?: string | number | undefined; 'url.query'?: string | undefined; 'url.registered_domain'?: string | undefined; 'url.scheme'?: string | undefined; 'url.subdomain'?: string | undefined; 'url.top_level_domain'?: string | undefined; 'url.username'?: string | undefined; 'user.changes.domain'?: string | undefined; 'user.changes.email'?: string | undefined; 'user.changes.full_name'?: string | undefined; 'user.changes.group.domain'?: string | undefined; 'user.changes.group.id'?: string | undefined; 'user.changes.group.name'?: string | undefined; 'user.changes.hash'?: string | undefined; 'user.changes.id'?: string | undefined; 'user.changes.name'?: string | undefined; 'user.changes.roles'?: string[] | undefined; 'user.domain'?: string | undefined; 'user.effective.domain'?: string | undefined; 'user.effective.email'?: string | undefined; 'user.effective.full_name'?: string | undefined; 'user.effective.group.domain'?: string | undefined; 'user.effective.group.id'?: string | undefined; 'user.effective.group.name'?: string | undefined; 'user.effective.hash'?: string | undefined; 'user.effective.id'?: string | undefined; 'user.effective.name'?: string | undefined; 'user.effective.roles'?: string[] | undefined; 'user.email'?: string | undefined; 'user.full_name'?: string | undefined; 'user.group.domain'?: string | undefined; 'user.group.id'?: string | undefined; 'user.group.name'?: string | undefined; 'user.hash'?: string | undefined; 'user.id'?: string | undefined; 'user.name'?: string | undefined; 'user.risk.calculated_level'?: string | undefined; 'user.risk.calculated_score'?: number | undefined; 'user.risk.calculated_score_norm'?: number | undefined; 'user.risk.static_level'?: string | undefined; 'user.risk.static_score'?: number | undefined; 'user.risk.static_score_norm'?: number | undefined; 'user.roles'?: string[] | undefined; 'user.target.domain'?: string | undefined; 'user.target.email'?: string | undefined; 'user.target.full_name'?: string | undefined; 'user.target.group.domain'?: string | undefined; 'user.target.group.id'?: string | undefined; 'user.target.group.name'?: string | undefined; 'user.target.hash'?: string | undefined; 'user.target.id'?: string | undefined; 'user.target.name'?: string | undefined; 'user.target.roles'?: string[] | undefined; 'user_agent.device.name'?: string | undefined; 'user_agent.name'?: string | undefined; 'user_agent.original'?: string | undefined; 'user_agent.os.family'?: string | undefined; 'user_agent.os.full'?: string | undefined; 'user_agent.os.kernel'?: string | undefined; 'user_agent.os.name'?: string | undefined; 'user_agent.os.platform'?: string | undefined; 'user_agent.os.type'?: string | undefined; 'user_agent.os.version'?: string | undefined; 'user_agent.version'?: string | undefined; 'vulnerability.category'?: string[] | undefined; 'vulnerability.classification'?: string | undefined; 'vulnerability.description'?: string | undefined; 'vulnerability.enumeration'?: string | undefined; 'vulnerability.id'?: string | undefined; 'vulnerability.reference'?: string | undefined; 'vulnerability.report_id'?: string | undefined; 'vulnerability.scanner.vendor'?: string | undefined; 'vulnerability.score.base'?: number | undefined; 'vulnerability.score.environmental'?: number | undefined; 'vulnerability.score.temporal'?: number | undefined; 'vulnerability.score.version'?: string | undefined; 'vulnerability.severity'?: string | undefined; } & {} & { 'ecs.version'?: string | undefined; 'kibana.alert.risk_score'?: number | undefined; 'kibana.alert.rule.author'?: string | undefined; 'kibana.alert.rule.created_at'?: string | number | undefined; 'kibana.alert.rule.created_by'?: string | undefined; 'kibana.alert.rule.description'?: string | undefined; 'kibana.alert.rule.enabled'?: string | undefined; 'kibana.alert.rule.from'?: string | undefined; 'kibana.alert.rule.interval'?: string | undefined; 'kibana.alert.rule.license'?: string | undefined; 'kibana.alert.rule.note'?: string | undefined; 'kibana.alert.rule.references'?: string[] | undefined; 'kibana.alert.rule.rule_id'?: string | undefined; 'kibana.alert.rule.rule_name_override'?: string | undefined; 'kibana.alert.rule.to'?: string | undefined; 'kibana.alert.rule.type'?: string | undefined; 'kibana.alert.rule.updated_at'?: string | number | undefined; 'kibana.alert.rule.updated_by'?: string | undefined; 'kibana.alert.rule.version'?: string | undefined; 'kibana.alert.severity'?: string | undefined; 'kibana.alert.suppression.docs_count'?: string | number | undefined; 'kibana.alert.suppression.end'?: string | number | undefined; 'kibana.alert.suppression.start'?: string | number | undefined; 'kibana.alert.suppression.terms.field'?: string[] | undefined; 'kibana.alert.suppression.terms.value'?: string[] | undefined; 'kibana.alert.system_status'?: string | undefined; 'kibana.alert.workflow_reason'?: string | undefined; 'kibana.alert.workflow_status_updated_at'?: string | number | undefined; 'kibana.alert.workflow_user'?: string | undefined; }) | ({} & { 'kibana.alert.context'?: unknown; 'kibana.alert.evaluation.threshold'?: string | number | undefined; 'kibana.alert.evaluation.value'?: string | number | undefined; 'kibana.alert.evaluation.values'?: (string | number)[] | undefined; 'kibana.alert.group'?: { field?: string | undefined; value?: string | undefined; }[] | undefined; } & { '@timestamp': string | number; 'kibana.alert.instance.id': string; 'kibana.alert.rule.category': string; 'kibana.alert.rule.consumer': string; 'kibana.alert.rule.name': string; 'kibana.alert.rule.producer': string; 'kibana.alert.rule.revision': string | number; 'kibana.alert.rule.rule_type_id': string; 'kibana.alert.rule.uuid': string; 'kibana.alert.status': string; 'kibana.alert.uuid': string; 'kibana.space_ids': string[]; } & { 'event.action'?: string | undefined; 'event.kind'?: string | undefined; 'kibana.alert.action_group'?: string | undefined; 'kibana.alert.case_ids'?: string[] | undefined; 'kibana.alert.duration.us'?: string | number | undefined; 'kibana.alert.end'?: string | number | undefined; 'kibana.alert.flapping'?: boolean | undefined; 'kibana.alert.flapping_history'?: boolean[] | undefined; 'kibana.alert.last_detected'?: string | number | undefined; 'kibana.alert.maintenance_window_ids'?: string[] | undefined; 'kibana.alert.reason'?: string | undefined; 'kibana.alert.rule.execution.uuid'?: string | undefined; 'kibana.alert.rule.parameters'?: unknown; 'kibana.alert.rule.tags'?: string[] | undefined; 'kibana.alert.start'?: string | number | undefined; 'kibana.alert.time_range'?: { gte?: string | number | undefined; lte?: string | number | undefined; } | undefined; 'kibana.alert.url'?: string | undefined; 'kibana.alert.workflow_assignee_ids'?: string[] | undefined; 'kibana.alert.workflow_status'?: string | undefined; 'kibana.alert.workflow_tags'?: string[] | undefined; 'kibana.version'?: string | undefined; tags?: string[] | undefined; } & { '@timestamp': string | number; 'ecs.version': string; } & { 'agent.build.original'?: string | undefined; 'agent.ephemeral_id'?: string | undefined; 'agent.id'?: string | undefined; 'agent.name'?: string | undefined; 'agent.type'?: string | undefined; 'agent.version'?: string | undefined; 'client.address'?: string | undefined; 'client.as.number'?: string | number | undefined; 'client.as.organization.name'?: string | undefined; 'client.bytes'?: string | number | undefined; 'client.domain'?: string | undefined; 'client.geo.city_name'?: string | undefined; 'client.geo.continent_code'?: string | undefined; 'client.geo.continent_name'?: string | undefined; 'client.geo.country_iso_code'?: string | undefined; 'client.geo.country_name'?: string | undefined; 'client.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'client.geo.name'?: string | undefined; 'client.geo.postal_code'?: string | undefined; 'client.geo.region_iso_code'?: string | undefined; 'client.geo.region_name'?: string | undefined; 'client.geo.timezone'?: string | undefined; 'client.ip'?: string | undefined; 'client.mac'?: string | undefined; 'client.nat.ip'?: string | undefined; 'client.nat.port'?: string | number | undefined; 'client.packets'?: string | number | undefined; 'client.port'?: string | number | undefined; 'client.registered_domain'?: string | undefined; 'client.subdomain'?: string | undefined; 'client.top_level_domain'?: string | undefined; 'client.user.domain'?: string | undefined; 'client.user.email'?: string | undefined; 'client.user.full_name'?: string | undefined; 'client.user.group.domain'?: string | undefined; 'client.user.group.id'?: string | undefined; 'client.user.group.name'?: string | undefined; 'client.user.hash'?: string | undefined; 'client.user.id'?: string | undefined; 'client.user.name'?: string | undefined; 'client.user.roles'?: string[] | undefined; 'cloud.account.id'?: string | undefined; 'cloud.account.name'?: string | undefined; 'cloud.availability_zone'?: string | undefined; 'cloud.instance.id'?: string | undefined; 'cloud.instance.name'?: string | undefined; 'cloud.machine.type'?: string | undefined; 'cloud.origin.account.id'?: string | undefined; 'cloud.origin.account.name'?: string | undefined; 'cloud.origin.availability_zone'?: string | undefined; 'cloud.origin.instance.id'?: string | undefined; 'cloud.origin.instance.name'?: string | undefined; 'cloud.origin.machine.type'?: string | undefined; 'cloud.origin.project.id'?: string | undefined; 'cloud.origin.project.name'?: string | undefined; 'cloud.origin.provider'?: string | undefined; 'cloud.origin.region'?: string | undefined; 'cloud.origin.service.name'?: string | undefined; 'cloud.project.id'?: string | undefined; 'cloud.project.name'?: string | undefined; 'cloud.provider'?: string | undefined; 'cloud.region'?: string | undefined; 'cloud.service.name'?: string | undefined; 'cloud.target.account.id'?: string | undefined; 'cloud.target.account.name'?: string | undefined; 'cloud.target.availability_zone'?: string | undefined; 'cloud.target.instance.id'?: string | undefined; 'cloud.target.instance.name'?: string | undefined; 'cloud.target.machine.type'?: string | undefined; 'cloud.target.project.id'?: string | undefined; 'cloud.target.project.name'?: string | undefined; 'cloud.target.provider'?: string | undefined; 'cloud.target.region'?: string | undefined; 'cloud.target.service.name'?: string | undefined; 'container.cpu.usage'?: string | number | undefined; 'container.disk.read.bytes'?: string | number | undefined; 'container.disk.write.bytes'?: string | number | undefined; 'container.id'?: string | undefined; 'container.image.hash.all'?: string[] | undefined; 'container.image.name'?: string | undefined; 'container.image.tag'?: string[] | undefined; 'container.labels'?: unknown; 'container.memory.usage'?: string | number | undefined; 'container.name'?: string | undefined; 'container.network.egress.bytes'?: string | number | undefined; 'container.network.ingress.bytes'?: string | number | undefined; 'container.runtime'?: string | undefined; 'destination.address'?: string | undefined; 'destination.as.number'?: string | number | undefined; 'destination.as.organization.name'?: string | undefined; 'destination.bytes'?: string | number | undefined; 'destination.domain'?: string | undefined; 'destination.geo.city_name'?: string | undefined; 'destination.geo.continent_code'?: string | undefined; 'destination.geo.continent_name'?: string | undefined; 'destination.geo.country_iso_code'?: string | undefined; 'destination.geo.country_name'?: string | undefined; 'destination.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'destination.geo.name'?: string | undefined; 'destination.geo.postal_code'?: string | undefined; 'destination.geo.region_iso_code'?: string | undefined; 'destination.geo.region_name'?: string | undefined; 'destination.geo.timezone'?: string | undefined; 'destination.ip'?: string | undefined; 'destination.mac'?: string | undefined; 'destination.nat.ip'?: string | undefined; 'destination.nat.port'?: string | number | undefined; 'destination.packets'?: string | number | undefined; 'destination.port'?: string | number | undefined; 'destination.registered_domain'?: string | undefined; 'destination.subdomain'?: string | undefined; 'destination.top_level_domain'?: string | undefined; 'destination.user.domain'?: string | undefined; 'destination.user.email'?: string | undefined; 'destination.user.full_name'?: string | undefined; 'destination.user.group.domain'?: string | undefined; 'destination.user.group.id'?: string | undefined; 'destination.user.group.name'?: string | undefined; 'destination.user.hash'?: string | undefined; 'destination.user.id'?: string | undefined; 'destination.user.name'?: string | undefined; 'destination.user.roles'?: string[] | undefined; 'device.id'?: string | undefined; 'device.manufacturer'?: string | undefined; 'device.model.identifier'?: string | undefined; 'device.model.name'?: string | undefined; 'dll.code_signature.digest_algorithm'?: string | undefined; 'dll.code_signature.exists'?: boolean | undefined; 'dll.code_signature.signing_id'?: string | undefined; 'dll.code_signature.status'?: string | undefined; 'dll.code_signature.subject_name'?: string | undefined; 'dll.code_signature.team_id'?: string | undefined; 'dll.code_signature.timestamp'?: string | number | undefined; 'dll.code_signature.trusted'?: boolean | undefined; 'dll.code_signature.valid'?: boolean | undefined; 'dll.hash.md5'?: string | undefined; 'dll.hash.sha1'?: string | undefined; 'dll.hash.sha256'?: string | undefined; 'dll.hash.sha384'?: string | undefined; 'dll.hash.sha512'?: string | undefined; 'dll.hash.ssdeep'?: string | undefined; 'dll.hash.tlsh'?: string | undefined; 'dll.name'?: string | undefined; 'dll.path'?: string | undefined; 'dll.pe.architecture'?: string | undefined; 'dll.pe.company'?: string | undefined; 'dll.pe.description'?: string | undefined; 'dll.pe.file_version'?: string | undefined; 'dll.pe.imphash'?: string | undefined; 'dll.pe.original_file_name'?: string | undefined; 'dll.pe.pehash'?: string | undefined; 'dll.pe.product'?: string | undefined; 'dns.answers'?: { class?: string | undefined; data?: string | undefined; name?: string | undefined; ttl?: string | number | undefined; type?: string | undefined; }[] | undefined; 'dns.header_flags'?: string[] | undefined; 'dns.id'?: string | undefined; 'dns.op_code'?: string | undefined; 'dns.question.class'?: string | undefined; 'dns.question.name'?: string | undefined; 'dns.question.registered_domain'?: string | undefined; 'dns.question.subdomain'?: string | undefined; 'dns.question.top_level_domain'?: string | undefined; 'dns.question.type'?: string | undefined; 'dns.resolved_ip'?: string[] | undefined; 'dns.response_code'?: string | undefined; 'dns.type'?: string | undefined; 'email.attachments'?: { 'file.extension'?: string | undefined; 'file.hash.md5'?: string | undefined; 'file.hash.sha1'?: string | undefined; 'file.hash.sha256'?: string | undefined; 'file.hash.sha384'?: string | undefined; 'file.hash.sha512'?: string | undefined; 'file.hash.ssdeep'?: string | undefined; 'file.hash.tlsh'?: string | undefined; 'file.mime_type'?: string | undefined; 'file.name'?: string | undefined; 'file.size'?: string | number | undefined; }[] | undefined; 'email.bcc.address'?: string[] | undefined; 'email.cc.address'?: string[] | undefined; 'email.content_type'?: string | undefined; 'email.delivery_timestamp'?: string | number | undefined; 'email.direction'?: string | undefined; 'email.from.address'?: string[] | undefined; 'email.local_id'?: string | undefined; 'email.message_id'?: string | undefined; 'email.origination_timestamp'?: string | number | undefined; 'email.reply_to.address'?: string[] | undefined; 'email.sender.address'?: string | undefined; 'email.subject'?: string | undefined; 'email.to.address'?: string[] | undefined; 'email.x_mailer'?: string | undefined; 'error.code'?: string | undefined; 'error.id'?: string | undefined; 'error.message'?: string | undefined; 'error.stack_trace'?: string | undefined; 'error.type'?: string | undefined; 'event.action'?: string | undefined; 'event.agent_id_status'?: string | undefined; 'event.category'?: string[] | undefined; 'event.code'?: string | undefined; 'event.created'?: string | number | undefined; 'event.dataset'?: string | undefined; 'event.duration'?: string | number | undefined; 'event.end'?: string | number | undefined; 'event.hash'?: string | undefined; 'event.id'?: string | undefined; 'event.ingested'?: string | number | undefined; 'event.kind'?: string | undefined; 'event.module'?: string | undefined; 'event.original'?: string | undefined; 'event.outcome'?: string | undefined; 'event.provider'?: string | undefined; 'event.reason'?: string | undefined; 'event.reference'?: string | undefined; 'event.risk_score'?: number | undefined; 'event.risk_score_norm'?: number | undefined; 'event.sequence'?: string | number | undefined; 'event.severity'?: string | number | undefined; 'event.start'?: string | number | undefined; 'event.timezone'?: string | undefined; 'event.type'?: string[] | undefined; 'event.url'?: string | undefined; 'faas.coldstart'?: boolean | undefined; 'faas.execution'?: string | undefined; 'faas.id'?: string | undefined; 'faas.name'?: string | undefined; 'faas.version'?: string | undefined; 'file.accessed'?: string | number | undefined; 'file.attributes'?: string[] | undefined; 'file.code_signature.digest_algorithm'?: string | undefined; 'file.code_signature.exists'?: boolean | undefined; 'file.code_signature.signing_id'?: string | undefined; 'file.code_signature.status'?: string | undefined; 'file.code_signature.subject_name'?: string | undefined; 'file.code_signature.team_id'?: string | undefined; 'file.code_signature.timestamp'?: string | number | undefined; 'file.code_signature.trusted'?: boolean | undefined; 'file.code_signature.valid'?: boolean | undefined; 'file.created'?: string | number | undefined; 'file.ctime'?: string | number | undefined; 'file.device'?: string | undefined; 'file.directory'?: string | undefined; 'file.drive_letter'?: string | undefined; 'file.elf.architecture'?: string | undefined; 'file.elf.byte_order'?: string | undefined; 'file.elf.cpu_type'?: string | undefined; 'file.elf.creation_date'?: string | number | undefined; 'file.elf.exports'?: unknown[] | undefined; 'file.elf.header.abi_version'?: string | undefined; 'file.elf.header.class'?: string | undefined; 'file.elf.header.data'?: string | undefined; 'file.elf.header.entrypoint'?: string | number | undefined; 'file.elf.header.object_version'?: string | undefined; 'file.elf.header.os_abi'?: string | undefined; 'file.elf.header.type'?: string | undefined; 'file.elf.header.version'?: string | undefined; 'file.elf.imports'?: unknown[] | undefined; 'file.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'file.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'file.elf.shared_libraries'?: string[] | undefined; 'file.elf.telfhash'?: string | undefined; 'file.extension'?: string | undefined; 'file.fork_name'?: string | undefined; 'file.gid'?: string | undefined; 'file.group'?: string | undefined; 'file.hash.md5'?: string | undefined; 'file.hash.sha1'?: string | undefined; 'file.hash.sha256'?: string | undefined; 'file.hash.sha384'?: string | undefined; 'file.hash.sha512'?: string | undefined; 'file.hash.ssdeep'?: string | undefined; 'file.hash.tlsh'?: string | undefined; 'file.inode'?: string | undefined; 'file.mime_type'?: string | undefined; 'file.mode'?: string | undefined; 'file.mtime'?: string | number | undefined; 'file.name'?: string | undefined; 'file.owner'?: string | undefined; 'file.path'?: string | undefined; 'file.pe.architecture'?: string | undefined; 'file.pe.company'?: string | undefined; 'file.pe.description'?: string | undefined; 'file.pe.file_version'?: string | undefined; 'file.pe.imphash'?: string | undefined; 'file.pe.original_file_name'?: string | undefined; 'file.pe.pehash'?: string | undefined; 'file.pe.product'?: string | undefined; 'file.size'?: string | number | undefined; 'file.target_path'?: string | undefined; 'file.type'?: string | undefined; 'file.uid'?: string | undefined; 'file.x509.alternative_names'?: string[] | undefined; 'file.x509.issuer.common_name'?: string[] | undefined; 'file.x509.issuer.country'?: string[] | undefined; 'file.x509.issuer.distinguished_name'?: string | undefined; 'file.x509.issuer.locality'?: string[] | undefined; 'file.x509.issuer.organization'?: string[] | undefined; 'file.x509.issuer.organizational_unit'?: string[] | undefined; 'file.x509.issuer.state_or_province'?: string[] | undefined; 'file.x509.not_after'?: string | number | undefined; 'file.x509.not_before'?: string | number | undefined; 'file.x509.public_key_algorithm'?: string | undefined; 'file.x509.public_key_curve'?: string | undefined; 'file.x509.public_key_exponent'?: string | number | undefined; 'file.x509.public_key_size'?: string | number | undefined; 'file.x509.serial_number'?: string | undefined; 'file.x509.signature_algorithm'?: string | undefined; 'file.x509.subject.common_name'?: string[] | undefined; 'file.x509.subject.country'?: string[] | undefined; 'file.x509.subject.distinguished_name'?: string | undefined; 'file.x509.subject.locality'?: string[] | undefined; 'file.x509.subject.organization'?: string[] | undefined; 'file.x509.subject.organizational_unit'?: string[] | undefined; 'file.x509.subject.state_or_province'?: string[] | undefined; 'file.x509.version_number'?: string | undefined; 'group.domain'?: string | undefined; 'group.id'?: string | undefined; 'group.name'?: string | undefined; 'host.architecture'?: string | undefined; 'host.boot.id'?: string | undefined; 'host.cpu.usage'?: string | number | undefined; 'host.disk.read.bytes'?: string | number | undefined; 'host.disk.write.bytes'?: string | number | undefined; 'host.domain'?: string | undefined; 'host.geo.city_name'?: string | undefined; 'host.geo.continent_code'?: string | undefined; 'host.geo.continent_name'?: string | undefined; 'host.geo.country_iso_code'?: string | undefined; 'host.geo.country_name'?: string | undefined; 'host.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'host.geo.name'?: string | undefined; 'host.geo.postal_code'?: string | undefined; 'host.geo.region_iso_code'?: string | undefined; 'host.geo.region_name'?: string | undefined; 'host.geo.timezone'?: string | undefined; 'host.hostname'?: string | undefined; 'host.id'?: string | undefined; 'host.ip'?: string[] | undefined; 'host.mac'?: string[] | undefined; 'host.name'?: string | undefined; 'host.network.egress.bytes'?: string | number | undefined; 'host.network.egress.packets'?: string | number | undefined; 'host.network.ingress.bytes'?: string | number | undefined; 'host.network.ingress.packets'?: string | number | undefined; 'host.os.family'?: string | undefined; 'host.os.full'?: string | undefined; 'host.os.kernel'?: string | undefined; 'host.os.name'?: string | undefined; 'host.os.platform'?: string | undefined; 'host.os.type'?: string | undefined; 'host.os.version'?: string | undefined; 'host.pid_ns_ino'?: string | undefined; 'host.risk.calculated_level'?: string | undefined; 'host.risk.calculated_score'?: number | undefined; 'host.risk.calculated_score_norm'?: number | undefined; 'host.risk.static_level'?: string | undefined; 'host.risk.static_score'?: number | undefined; 'host.risk.static_score_norm'?: number | undefined; 'host.type'?: string | undefined; 'host.uptime'?: string | number | undefined; 'http.request.body.bytes'?: string | number | undefined; 'http.request.body.content'?: string | undefined; 'http.request.bytes'?: string | number | undefined; 'http.request.id'?: string | undefined; 'http.request.method'?: string | undefined; 'http.request.mime_type'?: string | undefined; 'http.request.referrer'?: string | undefined; 'http.response.body.bytes'?: string | number | undefined; 'http.response.body.content'?: string | undefined; 'http.response.bytes'?: string | number | undefined; 'http.response.mime_type'?: string | undefined; 'http.response.status_code'?: string | number | undefined; 'http.version'?: string | undefined; labels?: unknown; 'log.file.path'?: string | undefined; 'log.level'?: string | undefined; 'log.logger'?: string | undefined; 'log.origin.file.line'?: string | number | undefined; 'log.origin.file.name'?: string | undefined; 'log.origin.function'?: string | undefined; 'log.syslog'?: unknown; message?: string | undefined; 'network.application'?: string | undefined; 'network.bytes'?: string | number | undefined; 'network.community_id'?: string | undefined; 'network.direction'?: string | undefined; 'network.forwarded_ip'?: string | undefined; 'network.iana_number'?: string | undefined; 'network.inner'?: unknown; 'network.name'?: string | undefined; 'network.packets'?: string | number | undefined; 'network.protocol'?: string | undefined; 'network.transport'?: string | undefined; 'network.type'?: string | undefined; 'network.vlan.id'?: string | undefined; 'network.vlan.name'?: string | undefined; 'observer.egress'?: unknown; 'observer.geo.city_name'?: string | undefined; 'observer.geo.continent_code'?: string | undefined; 'observer.geo.continent_name'?: string | undefined; 'observer.geo.country_iso_code'?: string | undefined; 'observer.geo.country_name'?: string | undefined; 'observer.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'observer.geo.name'?: string | undefined; 'observer.geo.postal_code'?: string | undefined; 'observer.geo.region_iso_code'?: string | undefined; 'observer.geo.region_name'?: string | undefined; 'observer.geo.timezone'?: string | undefined; 'observer.hostname'?: string | undefined; 'observer.ingress'?: unknown; 'observer.ip'?: string[] | undefined; 'observer.mac'?: string[] | undefined; 'observer.name'?: string | undefined; 'observer.os.family'?: string | undefined; 'observer.os.full'?: string | undefined; 'observer.os.kernel'?: string | undefined; 'observer.os.name'?: string | undefined; 'observer.os.platform'?: string | undefined; 'observer.os.type'?: string | undefined; 'observer.os.version'?: string | undefined; 'observer.product'?: string | undefined; 'observer.serial_number'?: string | undefined; 'observer.type'?: string | undefined; 'observer.vendor'?: string | undefined; 'observer.version'?: string | undefined; 'orchestrator.api_version'?: string | undefined; 'orchestrator.cluster.id'?: string | undefined; 'orchestrator.cluster.name'?: string | undefined; 'orchestrator.cluster.url'?: string | undefined; 'orchestrator.cluster.version'?: string | undefined; 'orchestrator.namespace'?: string | undefined; 'orchestrator.organization'?: string | undefined; 'orchestrator.resource.id'?: string | undefined; 'orchestrator.resource.ip'?: string[] | undefined; 'orchestrator.resource.name'?: string | undefined; 'orchestrator.resource.parent.type'?: string | undefined; 'orchestrator.resource.type'?: string | undefined; 'orchestrator.type'?: string | undefined; 'organization.id'?: string | undefined; 'organization.name'?: string | undefined; 'package.architecture'?: string | undefined; 'package.build_version'?: string | undefined; 'package.checksum'?: string | undefined; 'package.description'?: string | undefined; 'package.install_scope'?: string | undefined; 'package.installed'?: string | number | undefined; 'package.license'?: string | undefined; 'package.name'?: string | undefined; 'package.path'?: string | undefined; 'package.reference'?: string | undefined; 'package.size'?: string | number | undefined; 'package.type'?: string | undefined; 'package.version'?: string | undefined; 'process.args'?: string[] | undefined; 'process.args_count'?: string | number | undefined; 'process.code_signature.digest_algorithm'?: string | undefined; 'process.code_signature.exists'?: boolean | undefined; 'process.code_signature.signing_id'?: string | undefined; 'process.code_signature.status'?: string | undefined; 'process.code_signature.subject_name'?: string | undefined; 'process.code_signature.team_id'?: string | undefined; 'process.code_signature.timestamp'?: string | number | undefined; 'process.code_signature.trusted'?: boolean | undefined; 'process.code_signature.valid'?: boolean | undefined; 'process.command_line'?: string | undefined; 'process.elf.architecture'?: string | undefined; 'process.elf.byte_order'?: string | undefined; 'process.elf.cpu_type'?: string | undefined; 'process.elf.creation_date'?: string | number | undefined; 'process.elf.exports'?: unknown[] | undefined; 'process.elf.header.abi_version'?: string | undefined; 'process.elf.header.class'?: string | undefined; 'process.elf.header.data'?: string | undefined; 'process.elf.header.entrypoint'?: string | number | undefined; 'process.elf.header.object_version'?: string | undefined; 'process.elf.header.os_abi'?: string | undefined; 'process.elf.header.type'?: string | undefined; 'process.elf.header.version'?: string | undefined; 'process.elf.imports'?: unknown[] | undefined; 'process.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'process.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'process.elf.shared_libraries'?: string[] | undefined; 'process.elf.telfhash'?: string | undefined; 'process.end'?: string | number | undefined; 'process.entity_id'?: string | undefined; 'process.entry_leader.args'?: string[] | undefined; 'process.entry_leader.args_count'?: string | number | undefined; 'process.entry_leader.attested_groups.name'?: string | undefined; 'process.entry_leader.attested_user.id'?: string | undefined; 'process.entry_leader.attested_user.name'?: string | undefined; 'process.entry_leader.command_line'?: string | undefined; 'process.entry_leader.entity_id'?: string | undefined; 'process.entry_leader.entry_meta.source.ip'?: string | undefined; 'process.entry_leader.entry_meta.type'?: string | undefined; 'process.entry_leader.executable'?: string | undefined; 'process.entry_leader.group.id'?: string | undefined; 'process.entry_leader.group.name'?: string | undefined; 'process.entry_leader.interactive'?: boolean | undefined; 'process.entry_leader.name'?: string | undefined; 'process.entry_leader.parent.entity_id'?: string | undefined; 'process.entry_leader.parent.pid'?: string | number | undefined; 'process.entry_leader.parent.session_leader.entity_id'?: string | undefined; 'process.entry_leader.parent.session_leader.pid'?: string | number | undefined; 'process.entry_leader.parent.session_leader.start'?: string | number | undefined; 'process.entry_leader.parent.start'?: string | number | undefined; 'process.entry_leader.pid'?: string | number | undefined; 'process.entry_leader.real_group.id'?: string | undefined; 'process.entry_leader.real_group.name'?: string | undefined; 'process.entry_leader.real_user.id'?: string | undefined; 'process.entry_leader.real_user.name'?: string | undefined; 'process.entry_leader.same_as_process'?: boolean | undefined; 'process.entry_leader.saved_group.id'?: string | undefined; 'process.entry_leader.saved_group.name'?: string | undefined; 'process.entry_leader.saved_user.id'?: string | undefined; 'process.entry_leader.saved_user.name'?: string | undefined; 'process.entry_leader.start'?: string | number | undefined; 'process.entry_leader.supplemental_groups.id'?: string | undefined; 'process.entry_leader.supplemental_groups.name'?: string | undefined; 'process.entry_leader.tty'?: unknown; 'process.entry_leader.user.id'?: string | undefined; 'process.entry_leader.user.name'?: string | undefined; 'process.entry_leader.working_directory'?: string | undefined; 'process.env_vars'?: string[] | undefined; 'process.executable'?: string | undefined; 'process.exit_code'?: string | number | undefined; 'process.group_leader.args'?: string[] | undefined; 'process.group_leader.args_count'?: string | number | undefined; 'process.group_leader.command_line'?: string | undefined; 'process.group_leader.entity_id'?: string | undefined; 'process.group_leader.executable'?: string | undefined; 'process.group_leader.group.id'?: string | undefined; 'process.group_leader.group.name'?: string | undefined; 'process.group_leader.interactive'?: boolean | undefined; 'process.group_leader.name'?: string | undefined; 'process.group_leader.pid'?: string | number | undefined; 'process.group_leader.real_group.id'?: string | undefined; 'process.group_leader.real_group.name'?: string | undefined; 'process.group_leader.real_user.id'?: string | undefined; 'process.group_leader.real_user.name'?: string | undefined; 'process.group_leader.same_as_process'?: boolean | undefined; 'process.group_leader.saved_group.id'?: string | undefined; 'process.group_leader.saved_group.name'?: string | undefined; 'process.group_leader.saved_user.id'?: string | undefined; 'process.group_leader.saved_user.name'?: string | undefined; 'process.group_leader.start'?: string | number | undefined; 'process.group_leader.supplemental_groups.id'?: string | undefined; 'process.group_leader.supplemental_groups.name'?: string | undefined; 'process.group_leader.tty'?: unknown; 'process.group_leader.user.id'?: string | undefined; 'process.group_leader.user.name'?: string | undefined; 'process.group_leader.working_directory'?: string | undefined; 'process.hash.md5'?: string | undefined; 'process.hash.sha1'?: string | undefined; 'process.hash.sha256'?: string | undefined; 'process.hash.sha384'?: string | undefined; 'process.hash.sha512'?: string | undefined; 'process.hash.ssdeep'?: string | undefined; 'process.hash.tlsh'?: string | undefined; 'process.interactive'?: boolean | undefined; 'process.io'?: unknown; 'process.name'?: string | undefined; 'process.parent.args'?: string[] | undefined; 'process.parent.args_count'?: string | number | undefined; 'process.parent.code_signature.digest_algorithm'?: string | undefined; 'process.parent.code_signature.exists'?: boolean | undefined; 'process.parent.code_signature.signing_id'?: string | undefined; 'process.parent.code_signature.status'?: string | undefined; 'process.parent.code_signature.subject_name'?: string | undefined; 'process.parent.code_signature.team_id'?: string | undefined; 'process.parent.code_signature.timestamp'?: string | number | undefined; 'process.parent.code_signature.trusted'?: boolean | undefined; 'process.parent.code_signature.valid'?: boolean | undefined; 'process.parent.command_line'?: string | undefined; 'process.parent.elf.architecture'?: string | undefined; 'process.parent.elf.byte_order'?: string | undefined; 'process.parent.elf.cpu_type'?: string | undefined; 'process.parent.elf.creation_date'?: string | number | undefined; 'process.parent.elf.exports'?: unknown[] | undefined; 'process.parent.elf.header.abi_version'?: string | undefined; 'process.parent.elf.header.class'?: string | undefined; 'process.parent.elf.header.data'?: string | undefined; 'process.parent.elf.header.entrypoint'?: string | number | undefined; 'process.parent.elf.header.object_version'?: string | undefined; 'process.parent.elf.header.os_abi'?: string | undefined; 'process.parent.elf.header.type'?: string | undefined; 'process.parent.elf.header.version'?: string | undefined; 'process.parent.elf.imports'?: unknown[] | undefined; 'process.parent.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'process.parent.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'process.parent.elf.shared_libraries'?: string[] | undefined; 'process.parent.elf.telfhash'?: string | undefined; 'process.parent.end'?: string | number | undefined; 'process.parent.entity_id'?: string | undefined; 'process.parent.executable'?: string | undefined; 'process.parent.exit_code'?: string | number | undefined; 'process.parent.group.id'?: string | undefined; 'process.parent.group.name'?: string | undefined; 'process.parent.group_leader.entity_id'?: string | undefined; 'process.parent.group_leader.pid'?: string | number | undefined; 'process.parent.group_leader.start'?: string | number | undefined; 'process.parent.hash.md5'?: string | undefined; 'process.parent.hash.sha1'?: string | undefined; 'process.parent.hash.sha256'?: string | undefined; 'process.parent.hash.sha384'?: string | undefined; 'process.parent.hash.sha512'?: string | undefined; 'process.parent.hash.ssdeep'?: string | undefined; 'process.parent.hash.tlsh'?: string | undefined; 'process.parent.interactive'?: boolean | undefined; 'process.parent.name'?: string | undefined; 'process.parent.pe.architecture'?: string | undefined; 'process.parent.pe.company'?: string | undefined; 'process.parent.pe.description'?: string | undefined; 'process.parent.pe.file_version'?: string | undefined; 'process.parent.pe.imphash'?: string | undefined; 'process.parent.pe.original_file_name'?: string | undefined; 'process.parent.pe.pehash'?: string | undefined; 'process.parent.pe.product'?: string | undefined; 'process.parent.pgid'?: string | number | undefined; 'process.parent.pid'?: string | number | undefined; 'process.parent.real_group.id'?: string | undefined; 'process.parent.real_group.name'?: string | undefined; 'process.parent.real_user.id'?: string | undefined; 'process.parent.real_user.name'?: string | undefined; 'process.parent.saved_group.id'?: string | undefined; 'process.parent.saved_group.name'?: string | undefined; 'process.parent.saved_user.id'?: string | undefined; 'process.parent.saved_user.name'?: string | undefined; 'process.parent.start'?: string | number | undefined; 'process.parent.supplemental_groups.id'?: string | undefined; 'process.parent.supplemental_groups.name'?: string | undefined; 'process.parent.thread.id'?: string | number | undefined; 'process.parent.thread.name'?: string | undefined; 'process.parent.title'?: string | undefined; 'process.parent.tty'?: unknown; 'process.parent.uptime'?: string | number | undefined; 'process.parent.user.id'?: string | undefined; 'process.parent.user.name'?: string | undefined; 'process.parent.working_directory'?: string | undefined; 'process.pe.architecture'?: string | undefined; 'process.pe.company'?: string | undefined; 'process.pe.description'?: string | undefined; 'process.pe.file_version'?: string | undefined; 'process.pe.imphash'?: string | undefined; 'process.pe.original_file_name'?: string | undefined; 'process.pe.pehash'?: string | undefined; 'process.pe.product'?: string | undefined; 'process.pgid'?: string | number | undefined; 'process.pid'?: string | number | undefined; 'process.previous.args'?: string[] | undefined; 'process.previous.args_count'?: string | number | undefined; 'process.previous.executable'?: string | undefined; 'process.real_group.id'?: string | undefined; 'process.real_group.name'?: string | undefined; 'process.real_user.id'?: string | undefined; 'process.real_user.name'?: string | undefined; 'process.saved_group.id'?: string | undefined; 'process.saved_group.name'?: string | undefined; 'process.saved_user.id'?: string | undefined; 'process.saved_user.name'?: string | undefined; 'process.session_leader.args'?: string[] | undefined; 'process.session_leader.args_count'?: string | number | undefined; 'process.session_leader.command_line'?: string | undefined; 'process.session_leader.entity_id'?: string | undefined; 'process.session_leader.executable'?: string | undefined; 'process.session_leader.group.id'?: string | undefined; 'process.session_leader.group.name'?: string | undefined; 'process.session_leader.interactive'?: boolean | undefined; 'process.session_leader.name'?: string | undefined; 'process.session_leader.parent.entity_id'?: string | undefined; 'process.session_leader.parent.pid'?: string | number | undefined; 'process.session_leader.parent.session_leader.entity_id'?: string | undefined; 'process.session_leader.parent.session_leader.pid'?: string | number | undefined; 'process.session_leader.parent.session_leader.start'?: string | number | undefined; 'process.session_leader.parent.start'?: string | number | undefined; 'process.session_leader.pid'?: string | number | undefined; 'process.session_leader.real_group.id'?: string | undefined; 'process.session_leader.real_group.name'?: string | undefined; 'process.session_leader.real_user.id'?: string | undefined; 'process.session_leader.real_user.name'?: string | undefined; 'process.session_leader.same_as_process'?: boolean | undefined; 'process.session_leader.saved_group.id'?: string | undefined; 'process.session_leader.saved_group.name'?: string | undefined; 'process.session_leader.saved_user.id'?: string | undefined; 'process.session_leader.saved_user.name'?: string | undefined; 'process.session_leader.start'?: string | number | undefined; 'process.session_leader.supplemental_groups.id'?: string | undefined; 'process.session_leader.supplemental_groups.name'?: string | undefined; 'process.session_leader.tty'?: unknown; 'process.session_leader.user.id'?: string | undefined; 'process.session_leader.user.name'?: string | undefined; 'process.session_leader.working_directory'?: string | undefined; 'process.start'?: string | number | undefined; 'process.supplemental_groups.id'?: string | undefined; 'process.supplemental_groups.name'?: string | undefined; 'process.thread.id'?: string | number | undefined; 'process.thread.name'?: string | undefined; 'process.title'?: string | undefined; 'process.tty'?: unknown; 'process.uptime'?: string | number | undefined; 'process.user.id'?: string | undefined; 'process.user.name'?: string | undefined; 'process.working_directory'?: string | undefined; 'registry.data.bytes'?: string | undefined; 'registry.data.strings'?: string[] | undefined; 'registry.data.type'?: string | undefined; 'registry.hive'?: string | undefined; 'registry.key'?: string | undefined; 'registry.path'?: string | undefined; 'registry.value'?: string | undefined; 'related.hash'?: string[] | undefined; 'related.hosts'?: string[] | undefined; 'related.ip'?: string[] | undefined; 'related.user'?: string[] | undefined; 'rule.author'?: string[] | undefined; 'rule.category'?: string | undefined; 'rule.description'?: string | undefined; 'rule.id'?: string | undefined; 'rule.license'?: string | undefined; 'rule.name'?: string | undefined; 'rule.reference'?: string | undefined; 'rule.ruleset'?: string | undefined; 'rule.uuid'?: string | undefined; 'rule.version'?: string | undefined; 'server.address'?: string | undefined; 'server.as.number'?: string | number | undefined; 'server.as.organization.name'?: string | undefined; 'server.bytes'?: string | number | undefined; 'server.domain'?: string | undefined; 'server.geo.city_name'?: string | undefined; 'server.geo.continent_code'?: string | undefined; 'server.geo.continent_name'?: string | undefined; 'server.geo.country_iso_code'?: string | undefined; 'server.geo.country_name'?: string | undefined; 'server.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'server.geo.name'?: string | undefined; 'server.geo.postal_code'?: string | undefined; 'server.geo.region_iso_code'?: string | undefined; 'server.geo.region_name'?: string | undefined; 'server.geo.timezone'?: string | undefined; 'server.ip'?: string | undefined; 'server.mac'?: string | undefined; 'server.nat.ip'?: string | undefined; 'server.nat.port'?: string | number | undefined; 'server.packets'?: string | number | undefined; 'server.port'?: string | number | undefined; 'server.registered_domain'?: string | undefined; 'server.subdomain'?: string | undefined; 'server.top_level_domain'?: string | undefined; 'server.user.domain'?: string | undefined; 'server.user.email'?: string | undefined; 'server.user.full_name'?: string | undefined; 'server.user.group.domain'?: string | undefined; 'server.user.group.id'?: string | undefined; 'server.user.group.name'?: string | undefined; 'server.user.hash'?: string | undefined; 'server.user.id'?: string | undefined; 'server.user.name'?: string | undefined; 'server.user.roles'?: string[] | undefined; 'service.address'?: string | undefined; 'service.environment'?: string | undefined; 'service.ephemeral_id'?: string | undefined; 'service.id'?: string | undefined; 'service.name'?: string | undefined; 'service.node.name'?: string | undefined; 'service.node.role'?: string | undefined; 'service.node.roles'?: string[] | undefined; 'service.origin.address'?: string | undefined; 'service.origin.environment'?: string | undefined; 'service.origin.ephemeral_id'?: string | undefined; 'service.origin.id'?: string | undefined; 'service.origin.name'?: string | undefined; 'service.origin.node.name'?: string | undefined; 'service.origin.node.role'?: string | undefined; 'service.origin.node.roles'?: string[] | undefined; 'service.origin.state'?: string | undefined; 'service.origin.type'?: string | undefined; 'service.origin.version'?: string | undefined; 'service.state'?: string | undefined; 'service.target.address'?: string | undefined; 'service.target.environment'?: string | undefined; 'service.target.ephemeral_id'?: string | undefined; 'service.target.id'?: string | undefined; 'service.target.name'?: string | undefined; 'service.target.node.name'?: string | undefined; 'service.target.node.role'?: string | undefined; 'service.target.node.roles'?: string[] | undefined; 'service.target.state'?: string | undefined; 'service.target.type'?: string | undefined; 'service.target.version'?: string | undefined; 'service.type'?: string | undefined; 'service.version'?: string | undefined; 'source.address'?: string | undefined; 'source.as.number'?: string | number | undefined; 'source.as.organization.name'?: string | undefined; 'source.bytes'?: string | number | undefined; 'source.domain'?: string | undefined; 'source.geo.city_name'?: string | undefined; 'source.geo.continent_code'?: string | undefined; 'source.geo.continent_name'?: string | undefined; 'source.geo.country_iso_code'?: string | undefined; 'source.geo.country_name'?: string | undefined; 'source.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'source.geo.name'?: string | undefined; 'source.geo.postal_code'?: string | undefined; 'source.geo.region_iso_code'?: string | undefined; 'source.geo.region_name'?: string | undefined; 'source.geo.timezone'?: string | undefined; 'source.ip'?: string | undefined; 'source.mac'?: string | undefined; 'source.nat.ip'?: string | undefined; 'source.nat.port'?: string | number | undefined; 'source.packets'?: string | number | undefined; 'source.port'?: string | number | undefined; 'source.registered_domain'?: string | undefined; 'source.subdomain'?: string | undefined; 'source.top_level_domain'?: string | undefined; 'source.user.domain'?: string | undefined; 'source.user.email'?: string | undefined; 'source.user.full_name'?: string | undefined; 'source.user.group.domain'?: string | undefined; 'source.user.group.id'?: string | undefined; 'source.user.group.name'?: string | undefined; 'source.user.hash'?: string | undefined; 'source.user.id'?: string | undefined; 'source.user.name'?: string | undefined; 'source.user.roles'?: string[] | undefined; 'span.id'?: string | undefined; tags?: string[] | undefined; 'threat.enrichments'?: { indicator?: unknown; 'matched.atomic'?: string | undefined; 'matched.field'?: string | undefined; 'matched.id'?: string | undefined; 'matched.index'?: string | undefined; 'matched.occurred'?: string | number | undefined; 'matched.type'?: string | undefined; }[] | undefined; 'threat.feed.dashboard_id'?: string | undefined; 'threat.feed.description'?: string | undefined; 'threat.feed.name'?: string | undefined; 'threat.feed.reference'?: string | undefined; 'threat.framework'?: string | undefined; 'threat.group.alias'?: string[] | undefined; 'threat.group.id'?: string | undefined; 'threat.group.name'?: string | undefined; 'threat.group.reference'?: string | undefined; 'threat.indicator.as.number'?: string | number | undefined; 'threat.indicator.as.organization.name'?: string | undefined; 'threat.indicator.confidence'?: string | undefined; 'threat.indicator.description'?: string | undefined; 'threat.indicator.email.address'?: string | undefined; 'threat.indicator.file.accessed'?: string | number | undefined; 'threat.indicator.file.attributes'?: string[] | undefined; 'threat.indicator.file.code_signature.digest_algorithm'?: string | undefined; 'threat.indicator.file.code_signature.exists'?: boolean | undefined; 'threat.indicator.file.code_signature.signing_id'?: string | undefined; 'threat.indicator.file.code_signature.status'?: string | undefined; 'threat.indicator.file.code_signature.subject_name'?: string | undefined; 'threat.indicator.file.code_signature.team_id'?: string | undefined; 'threat.indicator.file.code_signature.timestamp'?: string | number | undefined; 'threat.indicator.file.code_signature.trusted'?: boolean | undefined; 'threat.indicator.file.code_signature.valid'?: boolean | undefined; 'threat.indicator.file.created'?: string | number | undefined; 'threat.indicator.file.ctime'?: string | number | undefined; 'threat.indicator.file.device'?: string | undefined; 'threat.indicator.file.directory'?: string | undefined; 'threat.indicator.file.drive_letter'?: string | undefined; 'threat.indicator.file.elf.architecture'?: string | undefined; 'threat.indicator.file.elf.byte_order'?: string | undefined; 'threat.indicator.file.elf.cpu_type'?: string | undefined; 'threat.indicator.file.elf.creation_date'?: string | number | undefined; 'threat.indicator.file.elf.exports'?: unknown[] | undefined; 'threat.indicator.file.elf.header.abi_version'?: string | undefined; 'threat.indicator.file.elf.header.class'?: string | undefined; 'threat.indicator.file.elf.header.data'?: string | undefined; 'threat.indicator.file.elf.header.entrypoint'?: string | number | undefined; 'threat.indicator.file.elf.header.object_version'?: string | undefined; 'threat.indicator.file.elf.header.os_abi'?: string | undefined; 'threat.indicator.file.elf.header.type'?: string | undefined; 'threat.indicator.file.elf.header.version'?: string | undefined; 'threat.indicator.file.elf.imports'?: unknown[] | undefined; 'threat.indicator.file.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'threat.indicator.file.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'threat.indicator.file.elf.shared_libraries'?: string[] | undefined; 'threat.indicator.file.elf.telfhash'?: string | undefined; 'threat.indicator.file.extension'?: string | undefined; 'threat.indicator.file.fork_name'?: string | undefined; 'threat.indicator.file.gid'?: string | undefined; 'threat.indicator.file.group'?: string | undefined; 'threat.indicator.file.hash.md5'?: string | undefined; 'threat.indicator.file.hash.sha1'?: string | undefined; 'threat.indicator.file.hash.sha256'?: string | undefined; 'threat.indicator.file.hash.sha384'?: string | undefined; 'threat.indicator.file.hash.sha512'?: string | undefined; 'threat.indicator.file.hash.ssdeep'?: string | undefined; 'threat.indicator.file.hash.tlsh'?: string | undefined; 'threat.indicator.file.inode'?: string | undefined; 'threat.indicator.file.mime_type'?: string | undefined; 'threat.indicator.file.mode'?: string | undefined; 'threat.indicator.file.mtime'?: string | number | undefined; 'threat.indicator.file.name'?: string | undefined; 'threat.indicator.file.owner'?: string | undefined; 'threat.indicator.file.path'?: string | undefined; 'threat.indicator.file.pe.architecture'?: string | undefined; 'threat.indicator.file.pe.company'?: string | undefined; 'threat.indicator.file.pe.description'?: string | undefined; 'threat.indicator.file.pe.file_version'?: string | undefined; 'threat.indicator.file.pe.imphash'?: string | undefined; 'threat.indicator.file.pe.original_file_name'?: string | undefined; 'threat.indicator.file.pe.pehash'?: string | undefined; 'threat.indicator.file.pe.product'?: string | undefined; 'threat.indicator.file.size'?: string | number | undefined; 'threat.indicator.file.target_path'?: string | undefined; 'threat.indicator.file.type'?: string | undefined; 'threat.indicator.file.uid'?: string | undefined; 'threat.indicator.file.x509.alternative_names'?: string[] | undefined; 'threat.indicator.file.x509.issuer.common_name'?: string[] | undefined; 'threat.indicator.file.x509.issuer.country'?: string[] | undefined; 'threat.indicator.file.x509.issuer.distinguished_name'?: string | undefined; 'threat.indicator.file.x509.issuer.locality'?: string[] | undefined; 'threat.indicator.file.x509.issuer.organization'?: string[] | undefined; 'threat.indicator.file.x509.issuer.organizational_unit'?: string[] | undefined; 'threat.indicator.file.x509.issuer.state_or_province'?: string[] | undefined; 'threat.indicator.file.x509.not_after'?: string | number | undefined; 'threat.indicator.file.x509.not_before'?: string | number | undefined; 'threat.indicator.file.x509.public_key_algorithm'?: string | undefined; 'threat.indicator.file.x509.public_key_curve'?: string | undefined; 'threat.indicator.file.x509.public_key_exponent'?: string | number | undefined; 'threat.indicator.file.x509.public_key_size'?: string | number | undefined; 'threat.indicator.file.x509.serial_number'?: string | undefined; 'threat.indicator.file.x509.signature_algorithm'?: string | undefined; 'threat.indicator.file.x509.subject.common_name'?: string[] | undefined; 'threat.indicator.file.x509.subject.country'?: string[] | undefined; 'threat.indicator.file.x509.subject.distinguished_name'?: string | undefined; 'threat.indicator.file.x509.subject.locality'?: string[] | undefined; 'threat.indicator.file.x509.subject.organization'?: string[] | undefined; 'threat.indicator.file.x509.subject.organizational_unit'?: string[] | undefined; 'threat.indicator.file.x509.subject.state_or_province'?: string[] | undefined; 'threat.indicator.file.x509.version_number'?: string | undefined; 'threat.indicator.first_seen'?: string | number | undefined; 'threat.indicator.geo.city_name'?: string | undefined; 'threat.indicator.geo.continent_code'?: string | undefined; 'threat.indicator.geo.continent_name'?: string | undefined; 'threat.indicator.geo.country_iso_code'?: string | undefined; 'threat.indicator.geo.country_name'?: string | undefined; 'threat.indicator.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'threat.indicator.geo.name'?: string | undefined; 'threat.indicator.geo.postal_code'?: string | undefined; 'threat.indicator.geo.region_iso_code'?: string | undefined; 'threat.indicator.geo.region_name'?: string | undefined; 'threat.indicator.geo.timezone'?: string | undefined; 'threat.indicator.ip'?: string | undefined; 'threat.indicator.last_seen'?: string | number | undefined; 'threat.indicator.marking.tlp'?: string | undefined; 'threat.indicator.marking.tlp_version'?: string | undefined; 'threat.indicator.modified_at'?: string | number | undefined; 'threat.indicator.port'?: string | number | undefined; 'threat.indicator.provider'?: string | undefined; 'threat.indicator.reference'?: string | undefined; 'threat.indicator.registry.data.bytes'?: string | undefined; 'threat.indicator.registry.data.strings'?: string[] | undefined; 'threat.indicator.registry.data.type'?: string | undefined; 'threat.indicator.registry.hive'?: string | undefined; 'threat.indicator.registry.key'?: string | undefined; 'threat.indicator.registry.path'?: string | undefined; 'threat.indicator.registry.value'?: string | undefined; 'threat.indicator.scanner_stats'?: string | number | undefined; 'threat.indicator.sightings'?: string | number | undefined; 'threat.indicator.type'?: string | undefined; 'threat.indicator.url.domain'?: string | undefined; 'threat.indicator.url.extension'?: string | undefined; 'threat.indicator.url.fragment'?: string | undefined; 'threat.indicator.url.full'?: string | undefined; 'threat.indicator.url.original'?: string | undefined; 'threat.indicator.url.password'?: string | undefined; 'threat.indicator.url.path'?: string | undefined; 'threat.indicator.url.port'?: string | number | undefined; 'threat.indicator.url.query'?: string | undefined; 'threat.indicator.url.registered_domain'?: string | undefined; 'threat.indicator.url.scheme'?: string | undefined; 'threat.indicator.url.subdomain'?: string | undefined; 'threat.indicator.url.top_level_domain'?: string | undefined; 'threat.indicator.url.username'?: string | undefined; 'threat.indicator.x509.alternative_names'?: string[] | undefined; 'threat.indicator.x509.issuer.common_name'?: string[] | undefined; 'threat.indicator.x509.issuer.country'?: string[] | undefined; 'threat.indicator.x509.issuer.distinguished_name'?: string | undefined; 'threat.indicator.x509.issuer.locality'?: string[] | undefined; 'threat.indicator.x509.issuer.organization'?: string[] | undefined; 'threat.indicator.x509.issuer.organizational_unit'?: string[] | undefined; 'threat.indicator.x509.issuer.state_or_province'?: string[] | undefined; 'threat.indicator.x509.not_after'?: string | number | undefined; 'threat.indicator.x509.not_before'?: string | number | undefined; 'threat.indicator.x509.public_key_algorithm'?: string | undefined; 'threat.indicator.x509.public_key_curve'?: string | undefined; 'threat.indicator.x509.public_key_exponent'?: string | number | undefined; 'threat.indicator.x509.public_key_size'?: string | number | undefined; 'threat.indicator.x509.serial_number'?: string | undefined; 'threat.indicator.x509.signature_algorithm'?: string | undefined; 'threat.indicator.x509.subject.common_name'?: string[] | undefined; 'threat.indicator.x509.subject.country'?: string[] | undefined; 'threat.indicator.x509.subject.distinguished_name'?: string | undefined; 'threat.indicator.x509.subject.locality'?: string[] | undefined; 'threat.indicator.x509.subject.organization'?: string[] | undefined; 'threat.indicator.x509.subject.organizational_unit'?: string[] | undefined; 'threat.indicator.x509.subject.state_or_province'?: string[] | undefined; 'threat.indicator.x509.version_number'?: string | undefined; 'threat.software.alias'?: string[] | undefined; 'threat.software.id'?: string | undefined; 'threat.software.name'?: string | undefined; 'threat.software.platforms'?: string[] | undefined; 'threat.software.reference'?: string | undefined; 'threat.software.type'?: string | undefined; 'threat.tactic.id'?: string[] | undefined; 'threat.tactic.name'?: string[] | undefined; 'threat.tactic.reference'?: string[] | undefined; 'threat.technique.id'?: string[] | undefined; 'threat.technique.name'?: string[] | undefined; 'threat.technique.reference'?: string[] | undefined; 'threat.technique.subtechnique.id'?: string[] | undefined; 'threat.technique.subtechnique.name'?: string[] | undefined; 'threat.technique.subtechnique.reference'?: string[] | undefined; 'tls.cipher'?: string | undefined; 'tls.client.certificate'?: string | undefined; 'tls.client.certificate_chain'?: string[] | undefined; 'tls.client.hash.md5'?: string | undefined; 'tls.client.hash.sha1'?: string | undefined; 'tls.client.hash.sha256'?: string | undefined; 'tls.client.issuer'?: string | undefined; 'tls.client.ja3'?: string | undefined; 'tls.client.not_after'?: string | number | undefined; 'tls.client.not_before'?: string | number | undefined; 'tls.client.server_name'?: string | undefined; 'tls.client.subject'?: string | undefined; 'tls.client.supported_ciphers'?: string[] | undefined; 'tls.client.x509.alternative_names'?: string[] | undefined; 'tls.client.x509.issuer.common_name'?: string[] | undefined; 'tls.client.x509.issuer.country'?: string[] | undefined; 'tls.client.x509.issuer.distinguished_name'?: string | undefined; 'tls.client.x509.issuer.locality'?: string[] | undefined; 'tls.client.x509.issuer.organization'?: string[] | undefined; 'tls.client.x509.issuer.organizational_unit'?: string[] | undefined; 'tls.client.x509.issuer.state_or_province'?: string[] | undefined; 'tls.client.x509.not_after'?: string | number | undefined; 'tls.client.x509.not_before'?: string | number | undefined; 'tls.client.x509.public_key_algorithm'?: string | undefined; 'tls.client.x509.public_key_curve'?: string | undefined; 'tls.client.x509.public_key_exponent'?: string | number | undefined; 'tls.client.x509.public_key_size'?: string | number | undefined; 'tls.client.x509.serial_number'?: string | undefined; 'tls.client.x509.signature_algorithm'?: string | undefined; 'tls.client.x509.subject.common_name'?: string[] | undefined; 'tls.client.x509.subject.country'?: string[] | undefined; 'tls.client.x509.subject.distinguished_name'?: string | undefined; 'tls.client.x509.subject.locality'?: string[] | undefined; 'tls.client.x509.subject.organization'?: string[] | undefined; 'tls.client.x509.subject.organizational_unit'?: string[] | undefined; 'tls.client.x509.subject.state_or_province'?: string[] | undefined; 'tls.client.x509.version_number'?: string | undefined; 'tls.curve'?: string | undefined; 'tls.established'?: boolean | undefined; 'tls.next_protocol'?: string | undefined; 'tls.resumed'?: boolean | undefined; 'tls.server.certificate'?: string | undefined; 'tls.server.certificate_chain'?: string[] | undefined; 'tls.server.hash.md5'?: string | undefined; 'tls.server.hash.sha1'?: string | undefined; 'tls.server.hash.sha256'?: string | undefined; 'tls.server.issuer'?: string | undefined; 'tls.server.ja3s'?: string | undefined; 'tls.server.not_after'?: string | number | undefined; 'tls.server.not_before'?: string | number | undefined; 'tls.server.subject'?: string | undefined; 'tls.server.x509.alternative_names'?: string[] | undefined; 'tls.server.x509.issuer.common_name'?: string[] | undefined; 'tls.server.x509.issuer.country'?: string[] | undefined; 'tls.server.x509.issuer.distinguished_name'?: string | undefined; 'tls.server.x509.issuer.locality'?: string[] | undefined; 'tls.server.x509.issuer.organization'?: string[] | undefined; 'tls.server.x509.issuer.organizational_unit'?: string[] | undefined; 'tls.server.x509.issuer.state_or_province'?: string[] | undefined; 'tls.server.x509.not_after'?: string | number | undefined; 'tls.server.x509.not_before'?: string | number | undefined; 'tls.server.x509.public_key_algorithm'?: string | undefined; 'tls.server.x509.public_key_curve'?: string | undefined; 'tls.server.x509.public_key_exponent'?: string | number | undefined; 'tls.server.x509.public_key_size'?: string | number | undefined; 'tls.server.x509.serial_number'?: string | undefined; 'tls.server.x509.signature_algorithm'?: string | undefined; 'tls.server.x509.subject.common_name'?: string[] | undefined; 'tls.server.x509.subject.country'?: string[] | undefined; 'tls.server.x509.subject.distinguished_name'?: string | undefined; 'tls.server.x509.subject.locality'?: string[] | undefined; 'tls.server.x509.subject.organization'?: string[] | undefined; 'tls.server.x509.subject.organizational_unit'?: string[] | undefined; 'tls.server.x509.subject.state_or_province'?: string[] | undefined; 'tls.server.x509.version_number'?: string | undefined; 'tls.version'?: string | undefined; 'tls.version_protocol'?: string | undefined; 'trace.id'?: string | undefined; 'transaction.id'?: string | undefined; 'url.domain'?: string | undefined; 'url.extension'?: string | undefined; 'url.fragment'?: string | undefined; 'url.full'?: string | undefined; 'url.original'?: string | undefined; 'url.password'?: string | undefined; 'url.path'?: string | undefined; 'url.port'?: string | number | undefined; 'url.query'?: string | undefined; 'url.registered_domain'?: string | undefined; 'url.scheme'?: string | undefined; 'url.subdomain'?: string | undefined; 'url.top_level_domain'?: string | undefined; 'url.username'?: string | undefined; 'user.changes.domain'?: string | undefined; 'user.changes.email'?: string | undefined; 'user.changes.full_name'?: string | undefined; 'user.changes.group.domain'?: string | undefined; 'user.changes.group.id'?: string | undefined; 'user.changes.group.name'?: string | undefined; 'user.changes.hash'?: string | undefined; 'user.changes.id'?: string | undefined; 'user.changes.name'?: string | undefined; 'user.changes.roles'?: string[] | undefined; 'user.domain'?: string | undefined; 'user.effective.domain'?: string | undefined; 'user.effective.email'?: string | undefined; 'user.effective.full_name'?: string | undefined; 'user.effective.group.domain'?: string | undefined; 'user.effective.group.id'?: string | undefined; 'user.effective.group.name'?: string | undefined; 'user.effective.hash'?: string | undefined; 'user.effective.id'?: string | undefined; 'user.effective.name'?: string | undefined; 'user.effective.roles'?: string[] | undefined; 'user.email'?: string | undefined; 'user.full_name'?: string | undefined; 'user.group.domain'?: string | undefined; 'user.group.id'?: string | undefined; 'user.group.name'?: string | undefined; 'user.hash'?: string | undefined; 'user.id'?: string | undefined; 'user.name'?: string | undefined; 'user.risk.calculated_level'?: string | undefined; 'user.risk.calculated_score'?: number | undefined; 'user.risk.calculated_score_norm'?: number | undefined; 'user.risk.static_level'?: string | undefined; 'user.risk.static_score'?: number | undefined; 'user.risk.static_score_norm'?: number | undefined; 'user.roles'?: string[] | undefined; 'user.target.domain'?: string | undefined; 'user.target.email'?: string | undefined; 'user.target.full_name'?: string | undefined; 'user.target.group.domain'?: string | undefined; 'user.target.group.id'?: string | undefined; 'user.target.group.name'?: string | undefined; 'user.target.hash'?: string | undefined; 'user.target.id'?: string | undefined; 'user.target.name'?: string | undefined; 'user.target.roles'?: string[] | undefined; 'user_agent.device.name'?: string | undefined; 'user_agent.name'?: string | undefined; 'user_agent.original'?: string | undefined; 'user_agent.os.family'?: string | undefined; 'user_agent.os.full'?: string | undefined; 'user_agent.os.kernel'?: string | undefined; 'user_agent.os.name'?: string | undefined; 'user_agent.os.platform'?: string | undefined; 'user_agent.os.type'?: string | undefined; 'user_agent.os.version'?: string | undefined; 'user_agent.version'?: string | undefined; 'vulnerability.category'?: string[] | undefined; 'vulnerability.classification'?: string | undefined; 'vulnerability.description'?: string | undefined; 'vulnerability.enumeration'?: string | undefined; 'vulnerability.id'?: string | undefined; 'vulnerability.reference'?: string | undefined; 'vulnerability.report_id'?: string | undefined; 'vulnerability.scanner.vendor'?: string | undefined; 'vulnerability.score.base'?: number | undefined; 'vulnerability.score.environmental'?: number | undefined; 'vulnerability.score.temporal'?: number | undefined; 'vulnerability.score.version'?: string | undefined; 'vulnerability.severity'?: string | undefined; } & {} & { 'ecs.version'?: string | undefined; 'kibana.alert.risk_score'?: number | undefined; 'kibana.alert.rule.author'?: string | undefined; 'kibana.alert.rule.created_at'?: string | number | undefined; 'kibana.alert.rule.created_by'?: string | undefined; 'kibana.alert.rule.description'?: string | undefined; 'kibana.alert.rule.enabled'?: string | undefined; 'kibana.alert.rule.from'?: string | undefined; 'kibana.alert.rule.interval'?: string | undefined; 'kibana.alert.rule.license'?: string | undefined; 'kibana.alert.rule.note'?: string | undefined; 'kibana.alert.rule.references'?: string[] | undefined; 'kibana.alert.rule.rule_id'?: string | undefined; 'kibana.alert.rule.rule_name_override'?: string | undefined; 'kibana.alert.rule.to'?: string | undefined; 'kibana.alert.rule.type'?: string | undefined; 'kibana.alert.rule.updated_at'?: string | number | undefined; 'kibana.alert.rule.updated_by'?: string | undefined; 'kibana.alert.rule.version'?: string | undefined; 'kibana.alert.severity'?: string | undefined; 'kibana.alert.suppression.docs_count'?: string | number | undefined; 'kibana.alert.suppression.end'?: string | number | undefined; 'kibana.alert.suppression.start'?: string | number | undefined; 'kibana.alert.suppression.terms.field'?: string[] | undefined; 'kibana.alert.suppression.terms.value'?: string[] | undefined; 'kibana.alert.system_status'?: string | undefined; 'kibana.alert.workflow_reason'?: string | undefined; 'kibana.alert.workflow_status_updated_at'?: string | number | undefined; 'kibana.alert.workflow_user'?: string | undefined; }) | ({} & { 'kibana.alert.context'?: unknown; 'kibana.alert.evaluation.threshold'?: string | number | undefined; 'kibana.alert.evaluation.value'?: string | number | undefined; 'kibana.alert.evaluation.values'?: (string | number)[] | undefined; 'kibana.alert.group'?: { field?: string | undefined; value?: string | undefined; }[] | undefined; 'slo.id'?: string | undefined; 'slo.instanceId'?: string | undefined; 'slo.revision'?: string | number | undefined; } & { '@timestamp': string | number; 'kibana.alert.instance.id': string; 'kibana.alert.rule.category': string; 'kibana.alert.rule.consumer': string; 'kibana.alert.rule.name': string; 'kibana.alert.rule.producer': string; 'kibana.alert.rule.revision': string | number; 'kibana.alert.rule.rule_type_id': string; 'kibana.alert.rule.uuid': string; 'kibana.alert.status': string; 'kibana.alert.uuid': string; 'kibana.space_ids': string[]; } & { 'event.action'?: string | undefined; 'event.kind'?: string | undefined; 'kibana.alert.action_group'?: string | undefined; 'kibana.alert.case_ids'?: string[] | undefined; 'kibana.alert.duration.us'?: string | number | undefined; 'kibana.alert.end'?: string | number | undefined; 'kibana.alert.flapping'?: boolean | undefined; 'kibana.alert.flapping_history'?: boolean[] | undefined; 'kibana.alert.last_detected'?: string | number | undefined; 'kibana.alert.maintenance_window_ids'?: string[] | undefined; 'kibana.alert.reason'?: string | undefined; 'kibana.alert.rule.execution.uuid'?: string | undefined; 'kibana.alert.rule.parameters'?: unknown; 'kibana.alert.rule.tags'?: string[] | undefined; 'kibana.alert.start'?: string | number | undefined; 'kibana.alert.time_range'?: { gte?: string | number | undefined; lte?: string | number | undefined; } | undefined; 'kibana.alert.url'?: string | undefined; 'kibana.alert.workflow_assignee_ids'?: string[] | undefined; 'kibana.alert.workflow_status'?: string | undefined; 'kibana.alert.workflow_tags'?: string[] | undefined; 'kibana.version'?: string | undefined; tags?: string[] | undefined; } & {} & { 'ecs.version'?: string | undefined; 'kibana.alert.risk_score'?: number | undefined; 'kibana.alert.rule.author'?: string | undefined; 'kibana.alert.rule.created_at'?: string | number | undefined; 'kibana.alert.rule.created_by'?: string | undefined; 'kibana.alert.rule.description'?: string | undefined; 'kibana.alert.rule.enabled'?: string | undefined; 'kibana.alert.rule.from'?: string | undefined; 'kibana.alert.rule.interval'?: string | undefined; 'kibana.alert.rule.license'?: string | undefined; 'kibana.alert.rule.note'?: string | undefined; 'kibana.alert.rule.references'?: string[] | undefined; 'kibana.alert.rule.rule_id'?: string | undefined; 'kibana.alert.rule.rule_name_override'?: string | undefined; 'kibana.alert.rule.to'?: string | undefined; 'kibana.alert.rule.type'?: string | undefined; 'kibana.alert.rule.updated_at'?: string | number | undefined; 'kibana.alert.rule.updated_by'?: string | undefined; 'kibana.alert.rule.version'?: string | undefined; 'kibana.alert.severity'?: string | undefined; 'kibana.alert.suppression.docs_count'?: string | number | undefined; 'kibana.alert.suppression.end'?: string | number | undefined; 'kibana.alert.suppression.start'?: string | number | undefined; 'kibana.alert.suppression.terms.field'?: string[] | undefined; 'kibana.alert.suppression.terms.value'?: string[] | undefined; 'kibana.alert.system_status'?: string | undefined; 'kibana.alert.workflow_reason'?: string | undefined; 'kibana.alert.workflow_status_updated_at'?: string | number | undefined; 'kibana.alert.workflow_user'?: string | undefined; }) | ({} & { 'agent.name'?: string | undefined; 'anomaly.bucket_span.minutes'?: string | undefined; 'anomaly.start'?: string | number | undefined; 'error.message'?: string | undefined; 'kibana.alert.context'?: unknown; 'kibana.alert.evaluation.threshold'?: string | number | undefined; 'kibana.alert.evaluation.value'?: string | number | undefined; 'kibana.alert.evaluation.values'?: (string | number)[] | undefined; 'kibana.alert.group'?: { field?: string | undefined; value?: string | undefined; }[] | undefined; 'monitor.id'?: string | undefined; 'monitor.name'?: string | undefined; 'monitor.type'?: string | undefined; 'observer.geo.name'?: string | undefined; 'tls.server.hash.sha256'?: string | undefined; 'tls.server.x509.issuer.common_name'?: string | undefined; 'tls.server.x509.not_after'?: string | number | undefined; 'tls.server.x509.not_before'?: string | number | undefined; 'tls.server.x509.subject.common_name'?: string | undefined; 'url.full'?: string | undefined; } & { '@timestamp': string | number; 'kibana.alert.instance.id': string; 'kibana.alert.rule.category': string; 'kibana.alert.rule.consumer': string; 'kibana.alert.rule.name': string; 'kibana.alert.rule.producer': string; 'kibana.alert.rule.revision': string | number; 'kibana.alert.rule.rule_type_id': string; 'kibana.alert.rule.uuid': string; 'kibana.alert.status': string; 'kibana.alert.uuid': string; 'kibana.space_ids': string[]; } & { 'event.action'?: string | undefined; 'event.kind'?: string | undefined; 'kibana.alert.action_group'?: string | undefined; 'kibana.alert.case_ids'?: string[] | undefined; 'kibana.alert.duration.us'?: string | number | undefined; 'kibana.alert.end'?: string | number | undefined; 'kibana.alert.flapping'?: boolean | undefined; 'kibana.alert.flapping_history'?: boolean[] | undefined; 'kibana.alert.last_detected'?: string | number | undefined; 'kibana.alert.maintenance_window_ids'?: string[] | undefined; 'kibana.alert.reason'?: string | undefined; 'kibana.alert.rule.execution.uuid'?: string | undefined; 'kibana.alert.rule.parameters'?: unknown; 'kibana.alert.rule.tags'?: string[] | undefined; 'kibana.alert.start'?: string | number | undefined; 'kibana.alert.time_range'?: { gte?: string | number | undefined; lte?: string | number | undefined; } | undefined; 'kibana.alert.url'?: string | undefined; 'kibana.alert.workflow_assignee_ids'?: string[] | undefined; 'kibana.alert.workflow_status'?: string | undefined; 'kibana.alert.workflow_tags'?: string[] | undefined; 'kibana.version'?: string | undefined; tags?: string[] | undefined; } & {} & { 'ecs.version'?: string | undefined; 'kibana.alert.risk_score'?: number | undefined; 'kibana.alert.rule.author'?: string | undefined; 'kibana.alert.rule.created_at'?: string | number | undefined; 'kibana.alert.rule.created_by'?: string | undefined; 'kibana.alert.rule.description'?: string | undefined; 'kibana.alert.rule.enabled'?: string | undefined; 'kibana.alert.rule.from'?: string | undefined; 'kibana.alert.rule.interval'?: string | undefined; 'kibana.alert.rule.license'?: string | undefined; 'kibana.alert.rule.note'?: string | undefined; 'kibana.alert.rule.references'?: string[] | undefined; 'kibana.alert.rule.rule_id'?: string | undefined; 'kibana.alert.rule.rule_name_override'?: string | undefined; 'kibana.alert.rule.to'?: string | undefined; 'kibana.alert.rule.type'?: string | undefined; 'kibana.alert.rule.updated_at'?: string | number | undefined; 'kibana.alert.rule.updated_by'?: string | undefined; 'kibana.alert.rule.version'?: string | undefined; 'kibana.alert.severity'?: string | undefined; 'kibana.alert.suppression.docs_count'?: string | number | undefined; 'kibana.alert.suppression.end'?: string | number | undefined; 'kibana.alert.suppression.start'?: string | number | undefined; 'kibana.alert.suppression.terms.field'?: string[] | undefined; 'kibana.alert.suppression.terms.value'?: string[] | undefined; 'kibana.alert.system_status'?: string | undefined; 'kibana.alert.workflow_reason'?: string | undefined; 'kibana.alert.workflow_status_updated_at'?: string | number | undefined; 'kibana.alert.workflow_user'?: string | undefined; }) | ({ '@timestamp': string | number; 'kibana.alert.ancestors': { depth: string | number; id: string; index: string; type: string; }[]; 'kibana.alert.depth': string | number; 'kibana.alert.instance.id': string; 'kibana.alert.original_event.action': string; 'kibana.alert.original_event.category': string[]; 'kibana.alert.original_event.created': string | number; 'kibana.alert.original_event.dataset': string; 'kibana.alert.original_event.id': string; 'kibana.alert.original_event.ingested': string | number; 'kibana.alert.original_event.kind': string; 'kibana.alert.original_event.module': string; 'kibana.alert.original_event.original': string; 'kibana.alert.original_event.outcome': string; 'kibana.alert.original_event.provider': string; 'kibana.alert.original_event.sequence': string | number; 'kibana.alert.original_event.type': string[]; 'kibana.alert.original_time': string | number; 'kibana.alert.rule.category': string; 'kibana.alert.rule.consumer': string; 'kibana.alert.rule.false_positives': string[]; 'kibana.alert.rule.max_signals': (string | number)[]; 'kibana.alert.rule.name': string; 'kibana.alert.rule.producer': string; 'kibana.alert.rule.revision': string | number; 'kibana.alert.rule.rule_type_id': string; 'kibana.alert.rule.threat.framework': string; 'kibana.alert.rule.threat.tactic.id': string; 'kibana.alert.rule.threat.tactic.name': string; 'kibana.alert.rule.threat.tactic.reference': string; 'kibana.alert.rule.threat.technique.id': string; 'kibana.alert.rule.threat.technique.name': string; 'kibana.alert.rule.threat.technique.reference': string; 'kibana.alert.rule.threat.technique.subtechnique.id': string; 'kibana.alert.rule.threat.technique.subtechnique.name': string; 'kibana.alert.rule.threat.technique.subtechnique.reference': string; 'kibana.alert.rule.uuid': string; 'kibana.alert.status': string; 'kibana.alert.uuid': string; 'kibana.space_ids': string[]; } & { 'ecs.version'?: string | undefined; 'event.action'?: string | undefined; 'event.kind'?: string | undefined; 'kibana.alert.action_group'?: string | undefined; 'kibana.alert.ancestors.rule'?: string | undefined; 'kibana.alert.building_block_type'?: string | undefined; 'kibana.alert.case_ids'?: string[] | undefined; 'kibana.alert.duration.us'?: string | number | undefined; 'kibana.alert.end'?: string | number | undefined; 'kibana.alert.flapping'?: boolean | undefined; 'kibana.alert.flapping_history'?: boolean[] | undefined; 'kibana.alert.group.id'?: string | undefined; 'kibana.alert.group.index'?: number | undefined; 'kibana.alert.host.criticality_level'?: string | undefined; 'kibana.alert.last_detected'?: string | number | undefined; 'kibana.alert.maintenance_window_ids'?: string[] | undefined; 'kibana.alert.new_terms'?: string[] | undefined; 'kibana.alert.original_event.agent_id_status'?: string | undefined; 'kibana.alert.original_event.code'?: string | undefined; 'kibana.alert.original_event.duration'?: string | undefined; 'kibana.alert.original_event.end'?: string | number | undefined; 'kibana.alert.original_event.hash'?: string | undefined; 'kibana.alert.original_event.reason'?: string | undefined; 'kibana.alert.original_event.reference'?: string | undefined; 'kibana.alert.original_event.risk_score'?: number | undefined; 'kibana.alert.original_event.risk_score_norm'?: number | undefined; 'kibana.alert.original_event.severity'?: string | number | undefined; 'kibana.alert.original_event.start'?: string | number | undefined; 'kibana.alert.original_event.timezone'?: string | undefined; 'kibana.alert.original_event.url'?: string | undefined; 'kibana.alert.reason'?: string | undefined; 'kibana.alert.risk_score'?: number | undefined; 'kibana.alert.rule.author'?: string | undefined; 'kibana.alert.rule.building_block_type'?: string | undefined; 'kibana.alert.rule.created_at'?: string | number | undefined; 'kibana.alert.rule.created_by'?: string | undefined; 'kibana.alert.rule.description'?: string | undefined; 'kibana.alert.rule.enabled'?: string | undefined; 'kibana.alert.rule.execution.uuid'?: string | undefined; 'kibana.alert.rule.from'?: string | undefined; 'kibana.alert.rule.immutable'?: string[] | undefined; 'kibana.alert.rule.interval'?: string | undefined; 'kibana.alert.rule.license'?: string | undefined; 'kibana.alert.rule.note'?: string | undefined; 'kibana.alert.rule.parameters'?: unknown; 'kibana.alert.rule.references'?: string[] | undefined; 'kibana.alert.rule.rule_id'?: string | undefined; 'kibana.alert.rule.rule_name_override'?: string | undefined; 'kibana.alert.rule.tags'?: string[] | undefined; 'kibana.alert.rule.timeline_id'?: string[] | undefined; 'kibana.alert.rule.timeline_title'?: string[] | undefined; 'kibana.alert.rule.timestamp_override'?: string | undefined; 'kibana.alert.rule.to'?: string | undefined; 'kibana.alert.rule.type'?: string | undefined; 'kibana.alert.rule.updated_at'?: string | number | undefined; 'kibana.alert.rule.updated_by'?: string | undefined; 'kibana.alert.rule.version'?: string | undefined; 'kibana.alert.severity'?: string | undefined; 'kibana.alert.start'?: string | number | undefined; 'kibana.alert.suppression.docs_count'?: string | number | undefined; 'kibana.alert.suppression.end'?: string | number | undefined; 'kibana.alert.suppression.start'?: string | number | undefined; 'kibana.alert.suppression.terms.field'?: string[] | undefined; 'kibana.alert.suppression.terms.value'?: string[] | undefined; 'kibana.alert.system_status'?: string | undefined; 'kibana.alert.threshold_result.cardinality'?: unknown; 'kibana.alert.threshold_result.count'?: string | number | undefined; 'kibana.alert.threshold_result.from'?: string | number | undefined; 'kibana.alert.threshold_result.terms'?: { field?: string | undefined; value?: string | undefined; }[] | undefined; 'kibana.alert.time_range'?: { gte?: string | number | undefined; lte?: string | number | undefined; } | undefined; 'kibana.alert.url'?: string | undefined; 'kibana.alert.user.criticality_level'?: string | undefined; 'kibana.alert.workflow_assignee_ids'?: string[] | undefined; 'kibana.alert.workflow_reason'?: string | undefined; 'kibana.alert.workflow_status'?: string | undefined; 'kibana.alert.workflow_status_updated_at'?: string | number | undefined; 'kibana.alert.workflow_tags'?: string[] | undefined; 'kibana.alert.workflow_user'?: string | undefined; 'kibana.version'?: string | undefined; tags?: string[] | undefined; } & { '@timestamp': string | number; 'kibana.alert.instance.id': string; 'kibana.alert.rule.category': string; 'kibana.alert.rule.consumer': string; 'kibana.alert.rule.name': string; 'kibana.alert.rule.producer': string; 'kibana.alert.rule.revision': string | number; 'kibana.alert.rule.rule_type_id': string; 'kibana.alert.rule.uuid': string; 'kibana.alert.status': string; 'kibana.alert.uuid': string; 'kibana.space_ids': string[]; } & { 'event.action'?: string | undefined; 'event.kind'?: string | undefined; 'kibana.alert.action_group'?: string | undefined; 'kibana.alert.case_ids'?: string[] | undefined; 'kibana.alert.duration.us'?: string | number | undefined; 'kibana.alert.end'?: string | number | undefined; 'kibana.alert.flapping'?: boolean | undefined; 'kibana.alert.flapping_history'?: boolean[] | undefined; 'kibana.alert.last_detected'?: string | number | undefined; 'kibana.alert.maintenance_window_ids'?: string[] | undefined; 'kibana.alert.reason'?: string | undefined; 'kibana.alert.rule.execution.uuid'?: string | undefined; 'kibana.alert.rule.parameters'?: unknown; 'kibana.alert.rule.tags'?: string[] | undefined; 'kibana.alert.start'?: string | number | undefined; 'kibana.alert.time_range'?: { gte?: string | number | undefined; lte?: string | number | undefined; } | undefined; 'kibana.alert.url'?: string | undefined; 'kibana.alert.workflow_assignee_ids'?: string[] | undefined; 'kibana.alert.workflow_status'?: string | undefined; 'kibana.alert.workflow_tags'?: string[] | undefined; 'kibana.version'?: string | undefined; tags?: string[] | undefined; } & { '@timestamp': string | number; 'ecs.version': string; } & { 'agent.build.original'?: string | undefined; 'agent.ephemeral_id'?: string | undefined; 'agent.id'?: string | undefined; 'agent.name'?: string | undefined; 'agent.type'?: string | undefined; 'agent.version'?: string | undefined; 'client.address'?: string | undefined; 'client.as.number'?: string | number | undefined; 'client.as.organization.name'?: string | undefined; 'client.bytes'?: string | number | undefined; 'client.domain'?: string | undefined; 'client.geo.city_name'?: string | undefined; 'client.geo.continent_code'?: string | undefined; 'client.geo.continent_name'?: string | undefined; 'client.geo.country_iso_code'?: string | undefined; 'client.geo.country_name'?: string | undefined; 'client.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'client.geo.name'?: string | undefined; 'client.geo.postal_code'?: string | undefined; 'client.geo.region_iso_code'?: string | undefined; 'client.geo.region_name'?: string | undefined; 'client.geo.timezone'?: string | undefined; 'client.ip'?: string | undefined; 'client.mac'?: string | undefined; 'client.nat.ip'?: string | undefined; 'client.nat.port'?: string | number | undefined; 'client.packets'?: string | number | undefined; 'client.port'?: string | number | undefined; 'client.registered_domain'?: string | undefined; 'client.subdomain'?: string | undefined; 'client.top_level_domain'?: string | undefined; 'client.user.domain'?: string | undefined; 'client.user.email'?: string | undefined; 'client.user.full_name'?: string | undefined; 'client.user.group.domain'?: string | undefined; 'client.user.group.id'?: string | undefined; 'client.user.group.name'?: string | undefined; 'client.user.hash'?: string | undefined; 'client.user.id'?: string | undefined; 'client.user.name'?: string | undefined; 'client.user.roles'?: string[] | undefined; 'cloud.account.id'?: string | undefined; 'cloud.account.name'?: string | undefined; 'cloud.availability_zone'?: string | undefined; 'cloud.instance.id'?: string | undefined; 'cloud.instance.name'?: string | undefined; 'cloud.machine.type'?: string | undefined; 'cloud.origin.account.id'?: string | undefined; 'cloud.origin.account.name'?: string | undefined; 'cloud.origin.availability_zone'?: string | undefined; 'cloud.origin.instance.id'?: string | undefined; 'cloud.origin.instance.name'?: string | undefined; 'cloud.origin.machine.type'?: string | undefined; 'cloud.origin.project.id'?: string | undefined; 'cloud.origin.project.name'?: string | undefined; 'cloud.origin.provider'?: string | undefined; 'cloud.origin.region'?: string | undefined; 'cloud.origin.service.name'?: string | undefined; 'cloud.project.id'?: string | undefined; 'cloud.project.name'?: string | undefined; 'cloud.provider'?: string | undefined; 'cloud.region'?: string | undefined; 'cloud.service.name'?: string | undefined; 'cloud.target.account.id'?: string | undefined; 'cloud.target.account.name'?: string | undefined; 'cloud.target.availability_zone'?: string | undefined; 'cloud.target.instance.id'?: string | undefined; 'cloud.target.instance.name'?: string | undefined; 'cloud.target.machine.type'?: string | undefined; 'cloud.target.project.id'?: string | undefined; 'cloud.target.project.name'?: string | undefined; 'cloud.target.provider'?: string | undefined; 'cloud.target.region'?: string | undefined; 'cloud.target.service.name'?: string | undefined; 'container.cpu.usage'?: string | number | undefined; 'container.disk.read.bytes'?: string | number | undefined; 'container.disk.write.bytes'?: string | number | undefined; 'container.id'?: string | undefined; 'container.image.hash.all'?: string[] | undefined; 'container.image.name'?: string | undefined; 'container.image.tag'?: string[] | undefined; 'container.labels'?: unknown; 'container.memory.usage'?: string | number | undefined; 'container.name'?: string | undefined; 'container.network.egress.bytes'?: string | number | undefined; 'container.network.ingress.bytes'?: string | number | undefined; 'container.runtime'?: string | undefined; 'destination.address'?: string | undefined; 'destination.as.number'?: string | number | undefined; 'destination.as.organization.name'?: string | undefined; 'destination.bytes'?: string | number | undefined; 'destination.domain'?: string | undefined; 'destination.geo.city_name'?: string | undefined; 'destination.geo.continent_code'?: string | undefined; 'destination.geo.continent_name'?: string | undefined; 'destination.geo.country_iso_code'?: string | undefined; 'destination.geo.country_name'?: string | undefined; 'destination.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'destination.geo.name'?: string | undefined; 'destination.geo.postal_code'?: string | undefined; 'destination.geo.region_iso_code'?: string | undefined; 'destination.geo.region_name'?: string | undefined; 'destination.geo.timezone'?: string | undefined; 'destination.ip'?: string | undefined; 'destination.mac'?: string | undefined; 'destination.nat.ip'?: string | undefined; 'destination.nat.port'?: string | number | undefined; 'destination.packets'?: string | number | undefined; 'destination.port'?: string | number | undefined; 'destination.registered_domain'?: string | undefined; 'destination.subdomain'?: string | undefined; 'destination.top_level_domain'?: string | undefined; 'destination.user.domain'?: string | undefined; 'destination.user.email'?: string | undefined; 'destination.user.full_name'?: string | undefined; 'destination.user.group.domain'?: string | undefined; 'destination.user.group.id'?: string | undefined; 'destination.user.group.name'?: string | undefined; 'destination.user.hash'?: string | undefined; 'destination.user.id'?: string | undefined; 'destination.user.name'?: string | undefined; 'destination.user.roles'?: string[] | undefined; 'device.id'?: string | undefined; 'device.manufacturer'?: string | undefined; 'device.model.identifier'?: string | undefined; 'device.model.name'?: string | undefined; 'dll.code_signature.digest_algorithm'?: string | undefined; 'dll.code_signature.exists'?: boolean | undefined; 'dll.code_signature.signing_id'?: string | undefined; 'dll.code_signature.status'?: string | undefined; 'dll.code_signature.subject_name'?: string | undefined; 'dll.code_signature.team_id'?: string | undefined; 'dll.code_signature.timestamp'?: string | number | undefined; 'dll.code_signature.trusted'?: boolean | undefined; 'dll.code_signature.valid'?: boolean | undefined; 'dll.hash.md5'?: string | undefined; 'dll.hash.sha1'?: string | undefined; 'dll.hash.sha256'?: string | undefined; 'dll.hash.sha384'?: string | undefined; 'dll.hash.sha512'?: string | undefined; 'dll.hash.ssdeep'?: string | undefined; 'dll.hash.tlsh'?: string | undefined; 'dll.name'?: string | undefined; 'dll.path'?: string | undefined; 'dll.pe.architecture'?: string | undefined; 'dll.pe.company'?: string | undefined; 'dll.pe.description'?: string | undefined; 'dll.pe.file_version'?: string | undefined; 'dll.pe.imphash'?: string | undefined; 'dll.pe.original_file_name'?: string | undefined; 'dll.pe.pehash'?: string | undefined; 'dll.pe.product'?: string | undefined; 'dns.answers'?: { class?: string | undefined; data?: string | undefined; name?: string | undefined; ttl?: string | number | undefined; type?: string | undefined; }[] | undefined; 'dns.header_flags'?: string[] | undefined; 'dns.id'?: string | undefined; 'dns.op_code'?: string | undefined; 'dns.question.class'?: string | undefined; 'dns.question.name'?: string | undefined; 'dns.question.registered_domain'?: string | undefined; 'dns.question.subdomain'?: string | undefined; 'dns.question.top_level_domain'?: string | undefined; 'dns.question.type'?: string | undefined; 'dns.resolved_ip'?: string[] | undefined; 'dns.response_code'?: string | undefined; 'dns.type'?: string | undefined; 'email.attachments'?: { 'file.extension'?: string | undefined; 'file.hash.md5'?: string | undefined; 'file.hash.sha1'?: string | undefined; 'file.hash.sha256'?: string | undefined; 'file.hash.sha384'?: string | undefined; 'file.hash.sha512'?: string | undefined; 'file.hash.ssdeep'?: string | undefined; 'file.hash.tlsh'?: string | undefined; 'file.mime_type'?: string | undefined; 'file.name'?: string | undefined; 'file.size'?: string | number | undefined; }[] | undefined; 'email.bcc.address'?: string[] | undefined; 'email.cc.address'?: string[] | undefined; 'email.content_type'?: string | undefined; 'email.delivery_timestamp'?: string | number | undefined; 'email.direction'?: string | undefined; 'email.from.address'?: string[] | undefined; 'email.local_id'?: string | undefined; 'email.message_id'?: string | undefined; 'email.origination_timestamp'?: string | number | undefined; 'email.reply_to.address'?: string[] | undefined; 'email.sender.address'?: string | undefined; 'email.subject'?: string | undefined; 'email.to.address'?: string[] | undefined; 'email.x_mailer'?: string | undefined; 'error.code'?: string | undefined; 'error.id'?: string | undefined; 'error.message'?: string | undefined; 'error.stack_trace'?: string | undefined; 'error.type'?: string | undefined; 'event.action'?: string | undefined; 'event.agent_id_status'?: string | undefined; 'event.category'?: string[] | undefined; 'event.code'?: string | undefined; 'event.created'?: string | number | undefined; 'event.dataset'?: string | undefined; 'event.duration'?: string | number | undefined; 'event.end'?: string | number | undefined; 'event.hash'?: string | undefined; 'event.id'?: string | undefined; 'event.ingested'?: string | number | undefined; 'event.kind'?: string | undefined; 'event.module'?: string | undefined; 'event.original'?: string | undefined; 'event.outcome'?: string | undefined; 'event.provider'?: string | undefined; 'event.reason'?: string | undefined; 'event.reference'?: string | undefined; 'event.risk_score'?: number | undefined; 'event.risk_score_norm'?: number | undefined; 'event.sequence'?: string | number | undefined; 'event.severity'?: string | number | undefined; 'event.start'?: string | number | undefined; 'event.timezone'?: string | undefined; 'event.type'?: string[] | undefined; 'event.url'?: string | undefined; 'faas.coldstart'?: boolean | undefined; 'faas.execution'?: string | undefined; 'faas.id'?: string | undefined; 'faas.name'?: string | undefined; 'faas.version'?: string | undefined; 'file.accessed'?: string | number | undefined; 'file.attributes'?: string[] | undefined; 'file.code_signature.digest_algorithm'?: string | undefined; 'file.code_signature.exists'?: boolean | undefined; 'file.code_signature.signing_id'?: string | undefined; 'file.code_signature.status'?: string | undefined; 'file.code_signature.subject_name'?: string | undefined; 'file.code_signature.team_id'?: string | undefined; 'file.code_signature.timestamp'?: string | number | undefined; 'file.code_signature.trusted'?: boolean | undefined; 'file.code_signature.valid'?: boolean | undefined; 'file.created'?: string | number | undefined; 'file.ctime'?: string | number | undefined; 'file.device'?: string | undefined; 'file.directory'?: string | undefined; 'file.drive_letter'?: string | undefined; 'file.elf.architecture'?: string | undefined; 'file.elf.byte_order'?: string | undefined; 'file.elf.cpu_type'?: string | undefined; 'file.elf.creation_date'?: string | number | undefined; 'file.elf.exports'?: unknown[] | undefined; 'file.elf.header.abi_version'?: string | undefined; 'file.elf.header.class'?: string | undefined; 'file.elf.header.data'?: string | undefined; 'file.elf.header.entrypoint'?: string | number | undefined; 'file.elf.header.object_version'?: string | undefined; 'file.elf.header.os_abi'?: string | undefined; 'file.elf.header.type'?: string | undefined; 'file.elf.header.version'?: string | undefined; 'file.elf.imports'?: unknown[] | undefined; 'file.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'file.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'file.elf.shared_libraries'?: string[] | undefined; 'file.elf.telfhash'?: string | undefined; 'file.extension'?: string | undefined; 'file.fork_name'?: string | undefined; 'file.gid'?: string | undefined; 'file.group'?: string | undefined; 'file.hash.md5'?: string | undefined; 'file.hash.sha1'?: string | undefined; 'file.hash.sha256'?: string | undefined; 'file.hash.sha384'?: string | undefined; 'file.hash.sha512'?: string | undefined; 'file.hash.ssdeep'?: string | undefined; 'file.hash.tlsh'?: string | undefined; 'file.inode'?: string | undefined; 'file.mime_type'?: string | undefined; 'file.mode'?: string | undefined; 'file.mtime'?: string | number | undefined; 'file.name'?: string | undefined; 'file.owner'?: string | undefined; 'file.path'?: string | undefined; 'file.pe.architecture'?: string | undefined; 'file.pe.company'?: string | undefined; 'file.pe.description'?: string | undefined; 'file.pe.file_version'?: string | undefined; 'file.pe.imphash'?: string | undefined; 'file.pe.original_file_name'?: string | undefined; 'file.pe.pehash'?: string | undefined; 'file.pe.product'?: string | undefined; 'file.size'?: string | number | undefined; 'file.target_path'?: string | undefined; 'file.type'?: string | undefined; 'file.uid'?: string | undefined; 'file.x509.alternative_names'?: string[] | undefined; 'file.x509.issuer.common_name'?: string[] | undefined; 'file.x509.issuer.country'?: string[] | undefined; 'file.x509.issuer.distinguished_name'?: string | undefined; 'file.x509.issuer.locality'?: string[] | undefined; 'file.x509.issuer.organization'?: string[] | undefined; 'file.x509.issuer.organizational_unit'?: string[] | undefined; 'file.x509.issuer.state_or_province'?: string[] | undefined; 'file.x509.not_after'?: string | number | undefined; 'file.x509.not_before'?: string | number | undefined; 'file.x509.public_key_algorithm'?: string | undefined; 'file.x509.public_key_curve'?: string | undefined; 'file.x509.public_key_exponent'?: string | number | undefined; 'file.x509.public_key_size'?: string | number | undefined; 'file.x509.serial_number'?: string | undefined; 'file.x509.signature_algorithm'?: string | undefined; 'file.x509.subject.common_name'?: string[] | undefined; 'file.x509.subject.country'?: string[] | undefined; 'file.x509.subject.distinguished_name'?: string | undefined; 'file.x509.subject.locality'?: string[] | undefined; 'file.x509.subject.organization'?: string[] | undefined; 'file.x509.subject.organizational_unit'?: string[] | undefined; 'file.x509.subject.state_or_province'?: string[] | undefined; 'file.x509.version_number'?: string | undefined; 'group.domain'?: string | undefined; 'group.id'?: string | undefined; 'group.name'?: string | undefined; 'host.architecture'?: string | undefined; 'host.boot.id'?: string | undefined; 'host.cpu.usage'?: string | number | undefined; 'host.disk.read.bytes'?: string | number | undefined; 'host.disk.write.bytes'?: string | number | undefined; 'host.domain'?: string | undefined; 'host.geo.city_name'?: string | undefined; 'host.geo.continent_code'?: string | undefined; 'host.geo.continent_name'?: string | undefined; 'host.geo.country_iso_code'?: string | undefined; 'host.geo.country_name'?: string | undefined; 'host.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'host.geo.name'?: string | undefined; 'host.geo.postal_code'?: string | undefined; 'host.geo.region_iso_code'?: string | undefined; 'host.geo.region_name'?: string | undefined; 'host.geo.timezone'?: string | undefined; 'host.hostname'?: string | undefined; 'host.id'?: string | undefined; 'host.ip'?: string[] | undefined; 'host.mac'?: string[] | undefined; 'host.name'?: string | undefined; 'host.network.egress.bytes'?: string | number | undefined; 'host.network.egress.packets'?: string | number | undefined; 'host.network.ingress.bytes'?: string | number | undefined; 'host.network.ingress.packets'?: string | number | undefined; 'host.os.family'?: string | undefined; 'host.os.full'?: string | undefined; 'host.os.kernel'?: string | undefined; 'host.os.name'?: string | undefined; 'host.os.platform'?: string | undefined; 'host.os.type'?: string | undefined; 'host.os.version'?: string | undefined; 'host.pid_ns_ino'?: string | undefined; 'host.risk.calculated_level'?: string | undefined; 'host.risk.calculated_score'?: number | undefined; 'host.risk.calculated_score_norm'?: number | undefined; 'host.risk.static_level'?: string | undefined; 'host.risk.static_score'?: number | undefined; 'host.risk.static_score_norm'?: number | undefined; 'host.type'?: string | undefined; 'host.uptime'?: string | number | undefined; 'http.request.body.bytes'?: string | number | undefined; 'http.request.body.content'?: string | undefined; 'http.request.bytes'?: string | number | undefined; 'http.request.id'?: string | undefined; 'http.request.method'?: string | undefined; 'http.request.mime_type'?: string | undefined; 'http.request.referrer'?: string | undefined; 'http.response.body.bytes'?: string | number | undefined; 'http.response.body.content'?: string | undefined; 'http.response.bytes'?: string | number | undefined; 'http.response.mime_type'?: string | undefined; 'http.response.status_code'?: string | number | undefined; 'http.version'?: string | undefined; labels?: unknown; 'log.file.path'?: string | undefined; 'log.level'?: string | undefined; 'log.logger'?: string | undefined; 'log.origin.file.line'?: string | number | undefined; 'log.origin.file.name'?: string | undefined; 'log.origin.function'?: string | undefined; 'log.syslog'?: unknown; message?: string | undefined; 'network.application'?: string | undefined; 'network.bytes'?: string | number | undefined; 'network.community_id'?: string | undefined; 'network.direction'?: string | undefined; 'network.forwarded_ip'?: string | undefined; 'network.iana_number'?: string | undefined; 'network.inner'?: unknown; 'network.name'?: string | undefined; 'network.packets'?: string | number | undefined; 'network.protocol'?: string | undefined; 'network.transport'?: string | undefined; 'network.type'?: string | undefined; 'network.vlan.id'?: string | undefined; 'network.vlan.name'?: string | undefined; 'observer.egress'?: unknown; 'observer.geo.city_name'?: string | undefined; 'observer.geo.continent_code'?: string | undefined; 'observer.geo.continent_name'?: string | undefined; 'observer.geo.country_iso_code'?: string | undefined; 'observer.geo.country_name'?: string | undefined; 'observer.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'observer.geo.name'?: string | undefined; 'observer.geo.postal_code'?: string | undefined; 'observer.geo.region_iso_code'?: string | undefined; 'observer.geo.region_name'?: string | undefined; 'observer.geo.timezone'?: string | undefined; 'observer.hostname'?: string | undefined; 'observer.ingress'?: unknown; 'observer.ip'?: string[] | undefined; 'observer.mac'?: string[] | undefined; 'observer.name'?: string | undefined; 'observer.os.family'?: string | undefined; 'observer.os.full'?: string | undefined; 'observer.os.kernel'?: string | undefined; 'observer.os.name'?: string | undefined; 'observer.os.platform'?: string | undefined; 'observer.os.type'?: string | undefined; 'observer.os.version'?: string | undefined; 'observer.product'?: string | undefined; 'observer.serial_number'?: string | undefined; 'observer.type'?: string | undefined; 'observer.vendor'?: string | undefined; 'observer.version'?: string | undefined; 'orchestrator.api_version'?: string | undefined; 'orchestrator.cluster.id'?: string | undefined; 'orchestrator.cluster.name'?: string | undefined; 'orchestrator.cluster.url'?: string | undefined; 'orchestrator.cluster.version'?: string | undefined; 'orchestrator.namespace'?: string | undefined; 'orchestrator.organization'?: string | undefined; 'orchestrator.resource.id'?: string | undefined; 'orchestrator.resource.ip'?: string[] | undefined; 'orchestrator.resource.name'?: string | undefined; 'orchestrator.resource.parent.type'?: string | undefined; 'orchestrator.resource.type'?: string | undefined; 'orchestrator.type'?: string | undefined; 'organization.id'?: string | undefined; 'organization.name'?: string | undefined; 'package.architecture'?: string | undefined; 'package.build_version'?: string | undefined; 'package.checksum'?: string | undefined; 'package.description'?: string | undefined; 'package.install_scope'?: string | undefined; 'package.installed'?: string | number | undefined; 'package.license'?: string | undefined; 'package.name'?: string | undefined; 'package.path'?: string | undefined; 'package.reference'?: string | undefined; 'package.size'?: string | number | undefined; 'package.type'?: string | undefined; 'package.version'?: string | undefined; 'process.args'?: string[] | undefined; 'process.args_count'?: string | number | undefined; 'process.code_signature.digest_algorithm'?: string | undefined; 'process.code_signature.exists'?: boolean | undefined; 'process.code_signature.signing_id'?: string | undefined; 'process.code_signature.status'?: string | undefined; 'process.code_signature.subject_name'?: string | undefined; 'process.code_signature.team_id'?: string | undefined; 'process.code_signature.timestamp'?: string | number | undefined; 'process.code_signature.trusted'?: boolean | undefined; 'process.code_signature.valid'?: boolean | undefined; 'process.command_line'?: string | undefined; 'process.elf.architecture'?: string | undefined; 'process.elf.byte_order'?: string | undefined; 'process.elf.cpu_type'?: string | undefined; 'process.elf.creation_date'?: string | number | undefined; 'process.elf.exports'?: unknown[] | undefined; 'process.elf.header.abi_version'?: string | undefined; 'process.elf.header.class'?: string | undefined; 'process.elf.header.data'?: string | undefined; 'process.elf.header.entrypoint'?: string | number | undefined; 'process.elf.header.object_version'?: string | undefined; 'process.elf.header.os_abi'?: string | undefined; 'process.elf.header.type'?: string | undefined; 'process.elf.header.version'?: string | undefined; 'process.elf.imports'?: unknown[] | undefined; 'process.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'process.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'process.elf.shared_libraries'?: string[] | undefined; 'process.elf.telfhash'?: string | undefined; 'process.end'?: string | number | undefined; 'process.entity_id'?: string | undefined; 'process.entry_leader.args'?: string[] | undefined; 'process.entry_leader.args_count'?: string | number | undefined; 'process.entry_leader.attested_groups.name'?: string | undefined; 'process.entry_leader.attested_user.id'?: string | undefined; 'process.entry_leader.attested_user.name'?: string | undefined; 'process.entry_leader.command_line'?: string | undefined; 'process.entry_leader.entity_id'?: string | undefined; 'process.entry_leader.entry_meta.source.ip'?: string | undefined; 'process.entry_leader.entry_meta.type'?: string | undefined; 'process.entry_leader.executable'?: string | undefined; 'process.entry_leader.group.id'?: string | undefined; 'process.entry_leader.group.name'?: string | undefined; 'process.entry_leader.interactive'?: boolean | undefined; 'process.entry_leader.name'?: string | undefined; 'process.entry_leader.parent.entity_id'?: string | undefined; 'process.entry_leader.parent.pid'?: string | number | undefined; 'process.entry_leader.parent.session_leader.entity_id'?: string | undefined; 'process.entry_leader.parent.session_leader.pid'?: string | number | undefined; 'process.entry_leader.parent.session_leader.start'?: string | number | undefined; 'process.entry_leader.parent.start'?: string | number | undefined; 'process.entry_leader.pid'?: string | number | undefined; 'process.entry_leader.real_group.id'?: string | undefined; 'process.entry_leader.real_group.name'?: string | undefined; 'process.entry_leader.real_user.id'?: string | undefined; 'process.entry_leader.real_user.name'?: string | undefined; 'process.entry_leader.same_as_process'?: boolean | undefined; 'process.entry_leader.saved_group.id'?: string | undefined; 'process.entry_leader.saved_group.name'?: string | undefined; 'process.entry_leader.saved_user.id'?: string | undefined; 'process.entry_leader.saved_user.name'?: string | undefined; 'process.entry_leader.start'?: string | number | undefined; 'process.entry_leader.supplemental_groups.id'?: string | undefined; 'process.entry_leader.supplemental_groups.name'?: string | undefined; 'process.entry_leader.tty'?: unknown; 'process.entry_leader.user.id'?: string | undefined; 'process.entry_leader.user.name'?: string | undefined; 'process.entry_leader.working_directory'?: string | undefined; 'process.env_vars'?: string[] | undefined; 'process.executable'?: string | undefined; 'process.exit_code'?: string | number | undefined; 'process.group_leader.args'?: string[] | undefined; 'process.group_leader.args_count'?: string | number | undefined; 'process.group_leader.command_line'?: string | undefined; 'process.group_leader.entity_id'?: string | undefined; 'process.group_leader.executable'?: string | undefined; 'process.group_leader.group.id'?: string | undefined; 'process.group_leader.group.name'?: string | undefined; 'process.group_leader.interactive'?: boolean | undefined; 'process.group_leader.name'?: string | undefined; 'process.group_leader.pid'?: string | number | undefined; 'process.group_leader.real_group.id'?: string | undefined; 'process.group_leader.real_group.name'?: string | undefined; 'process.group_leader.real_user.id'?: string | undefined; 'process.group_leader.real_user.name'?: string | undefined; 'process.group_leader.same_as_process'?: boolean | undefined; 'process.group_leader.saved_group.id'?: string | undefined; 'process.group_leader.saved_group.name'?: string | undefined; 'process.group_leader.saved_user.id'?: string | undefined; 'process.group_leader.saved_user.name'?: string | undefined; 'process.group_leader.start'?: string | number | undefined; 'process.group_leader.supplemental_groups.id'?: string | undefined; 'process.group_leader.supplemental_groups.name'?: string | undefined; 'process.group_leader.tty'?: unknown; 'process.group_leader.user.id'?: string | undefined; 'process.group_leader.user.name'?: string | undefined; 'process.group_leader.working_directory'?: string | undefined; 'process.hash.md5'?: string | undefined; 'process.hash.sha1'?: string | undefined; 'process.hash.sha256'?: string | undefined; 'process.hash.sha384'?: string | undefined; 'process.hash.sha512'?: string | undefined; 'process.hash.ssdeep'?: string | undefined; 'process.hash.tlsh'?: string | undefined; 'process.interactive'?: boolean | undefined; 'process.io'?: unknown; 'process.name'?: string | undefined; 'process.parent.args'?: string[] | undefined; 'process.parent.args_count'?: string | number | undefined; 'process.parent.code_signature.digest_algorithm'?: string | undefined; 'process.parent.code_signature.exists'?: boolean | undefined; 'process.parent.code_signature.signing_id'?: string | undefined; 'process.parent.code_signature.status'?: string | undefined; 'process.parent.code_signature.subject_name'?: string | undefined; 'process.parent.code_signature.team_id'?: string | undefined; 'process.parent.code_signature.timestamp'?: string | number | undefined; 'process.parent.code_signature.trusted'?: boolean | undefined; 'process.parent.code_signature.valid'?: boolean | undefined; 'process.parent.command_line'?: string | undefined; 'process.parent.elf.architecture'?: string | undefined; 'process.parent.elf.byte_order'?: string | undefined; 'process.parent.elf.cpu_type'?: string | undefined; 'process.parent.elf.creation_date'?: string | number | undefined; 'process.parent.elf.exports'?: unknown[] | undefined; 'process.parent.elf.header.abi_version'?: string | undefined; 'process.parent.elf.header.class'?: string | undefined; 'process.parent.elf.header.data'?: string | undefined; 'process.parent.elf.header.entrypoint'?: string | number | undefined; 'process.parent.elf.header.object_version'?: string | undefined; 'process.parent.elf.header.os_abi'?: string | undefined; 'process.parent.elf.header.type'?: string | undefined; 'process.parent.elf.header.version'?: string | undefined; 'process.parent.elf.imports'?: unknown[] | undefined; 'process.parent.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'process.parent.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'process.parent.elf.shared_libraries'?: string[] | undefined; 'process.parent.elf.telfhash'?: string | undefined; 'process.parent.end'?: string | number | undefined; 'process.parent.entity_id'?: string | undefined; 'process.parent.executable'?: string | undefined; 'process.parent.exit_code'?: string | number | undefined; 'process.parent.group.id'?: string | undefined; 'process.parent.group.name'?: string | undefined; 'process.parent.group_leader.entity_id'?: string | undefined; 'process.parent.group_leader.pid'?: string | number | undefined; 'process.parent.group_leader.start'?: string | number | undefined; 'process.parent.hash.md5'?: string | undefined; 'process.parent.hash.sha1'?: string | undefined; 'process.parent.hash.sha256'?: string | undefined; 'process.parent.hash.sha384'?: string | undefined; 'process.parent.hash.sha512'?: string | undefined; 'process.parent.hash.ssdeep'?: string | undefined; 'process.parent.hash.tlsh'?: string | undefined; 'process.parent.interactive'?: boolean | undefined; 'process.parent.name'?: string | undefined; 'process.parent.pe.architecture'?: string | undefined; 'process.parent.pe.company'?: string | undefined; 'process.parent.pe.description'?: string | undefined; 'process.parent.pe.file_version'?: string | undefined; 'process.parent.pe.imphash'?: string | undefined; 'process.parent.pe.original_file_name'?: string | undefined; 'process.parent.pe.pehash'?: string | undefined; 'process.parent.pe.product'?: string | undefined; 'process.parent.pgid'?: string | number | undefined; 'process.parent.pid'?: string | number | undefined; 'process.parent.real_group.id'?: string | undefined; 'process.parent.real_group.name'?: string | undefined; 'process.parent.real_user.id'?: string | undefined; 'process.parent.real_user.name'?: string | undefined; 'process.parent.saved_group.id'?: string | undefined; 'process.parent.saved_group.name'?: string | undefined; 'process.parent.saved_user.id'?: string | undefined; 'process.parent.saved_user.name'?: string | undefined; 'process.parent.start'?: string | number | undefined; 'process.parent.supplemental_groups.id'?: string | undefined; 'process.parent.supplemental_groups.name'?: string | undefined; 'process.parent.thread.id'?: string | number | undefined; 'process.parent.thread.name'?: string | undefined; 'process.parent.title'?: string | undefined; 'process.parent.tty'?: unknown; 'process.parent.uptime'?: string | number | undefined; 'process.parent.user.id'?: string | undefined; 'process.parent.user.name'?: string | undefined; 'process.parent.working_directory'?: string | undefined; 'process.pe.architecture'?: string | undefined; 'process.pe.company'?: string | undefined; 'process.pe.description'?: string | undefined; 'process.pe.file_version'?: string | undefined; 'process.pe.imphash'?: string | undefined; 'process.pe.original_file_name'?: string | undefined; 'process.pe.pehash'?: string | undefined; 'process.pe.product'?: string | undefined; 'process.pgid'?: string | number | undefined; 'process.pid'?: string | number | undefined; 'process.previous.args'?: string[] | undefined; 'process.previous.args_count'?: string | number | undefined; 'process.previous.executable'?: string | undefined; 'process.real_group.id'?: string | undefined; 'process.real_group.name'?: string | undefined; 'process.real_user.id'?: string | undefined; 'process.real_user.name'?: string | undefined; 'process.saved_group.id'?: string | undefined; 'process.saved_group.name'?: string | undefined; 'process.saved_user.id'?: string | undefined; 'process.saved_user.name'?: string | undefined; 'process.session_leader.args'?: string[] | undefined; 'process.session_leader.args_count'?: string | number | undefined; 'process.session_leader.command_line'?: string | undefined; 'process.session_leader.entity_id'?: string | undefined; 'process.session_leader.executable'?: string | undefined; 'process.session_leader.group.id'?: string | undefined; 'process.session_leader.group.name'?: string | undefined; 'process.session_leader.interactive'?: boolean | undefined; 'process.session_leader.name'?: string | undefined; 'process.session_leader.parent.entity_id'?: string | undefined; 'process.session_leader.parent.pid'?: string | number | undefined; 'process.session_leader.parent.session_leader.entity_id'?: string | undefined; 'process.session_leader.parent.session_leader.pid'?: string | number | undefined; 'process.session_leader.parent.session_leader.start'?: string | number | undefined; 'process.session_leader.parent.start'?: string | number | undefined; 'process.session_leader.pid'?: string | number | undefined; 'process.session_leader.real_group.id'?: string | undefined; 'process.session_leader.real_group.name'?: string | undefined; 'process.session_leader.real_user.id'?: string | undefined; 'process.session_leader.real_user.name'?: string | undefined; 'process.session_leader.same_as_process'?: boolean | undefined; 'process.session_leader.saved_group.id'?: string | undefined; 'process.session_leader.saved_group.name'?: string | undefined; 'process.session_leader.saved_user.id'?: string | undefined; 'process.session_leader.saved_user.name'?: string | undefined; 'process.session_leader.start'?: string | number | undefined; 'process.session_leader.supplemental_groups.id'?: string | undefined; 'process.session_leader.supplemental_groups.name'?: string | undefined; 'process.session_leader.tty'?: unknown; 'process.session_leader.user.id'?: string | undefined; 'process.session_leader.user.name'?: string | undefined; 'process.session_leader.working_directory'?: string | undefined; 'process.start'?: string | number | undefined; 'process.supplemental_groups.id'?: string | undefined; 'process.supplemental_groups.name'?: string | undefined; 'process.thread.id'?: string | number | undefined; 'process.thread.name'?: string | undefined; 'process.title'?: string | undefined; 'process.tty'?: unknown; 'process.uptime'?: string | number | undefined; 'process.user.id'?: string | undefined; 'process.user.name'?: string | undefined; 'process.working_directory'?: string | undefined; 'registry.data.bytes'?: string | undefined; 'registry.data.strings'?: string[] | undefined; 'registry.data.type'?: string | undefined; 'registry.hive'?: string | undefined; 'registry.key'?: string | undefined; 'registry.path'?: string | undefined; 'registry.value'?: string | undefined; 'related.hash'?: string[] | undefined; 'related.hosts'?: string[] | undefined; 'related.ip'?: string[] | undefined; 'related.user'?: string[] | undefined; 'rule.author'?: string[] | undefined; 'rule.category'?: string | undefined; 'rule.description'?: string | undefined; 'rule.id'?: string | undefined; 'rule.license'?: string | undefined; 'rule.name'?: string | undefined; 'rule.reference'?: string | undefined; 'rule.ruleset'?: string | undefined; 'rule.uuid'?: string | undefined; 'rule.version'?: string | undefined; 'server.address'?: string | undefined; 'server.as.number'?: string | number | undefined; 'server.as.organization.name'?: string | undefined; 'server.bytes'?: string | number | undefined; 'server.domain'?: string | undefined; 'server.geo.city_name'?: string | undefined; 'server.geo.continent_code'?: string | undefined; 'server.geo.continent_name'?: string | undefined; 'server.geo.country_iso_code'?: string | undefined; 'server.geo.country_name'?: string | undefined; 'server.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'server.geo.name'?: string | undefined; 'server.geo.postal_code'?: string | undefined; 'server.geo.region_iso_code'?: string | undefined; 'server.geo.region_name'?: string | undefined; 'server.geo.timezone'?: string | undefined; 'server.ip'?: string | undefined; 'server.mac'?: string | undefined; 'server.nat.ip'?: string | undefined; 'server.nat.port'?: string | number | undefined; 'server.packets'?: string | number | undefined; 'server.port'?: string | number | undefined; 'server.registered_domain'?: string | undefined; 'server.subdomain'?: string | undefined; 'server.top_level_domain'?: string | undefined; 'server.user.domain'?: string | undefined; 'server.user.email'?: string | undefined; 'server.user.full_name'?: string | undefined; 'server.user.group.domain'?: string | undefined; 'server.user.group.id'?: string | undefined; 'server.user.group.name'?: string | undefined; 'server.user.hash'?: string | undefined; 'server.user.id'?: string | undefined; 'server.user.name'?: string | undefined; 'server.user.roles'?: string[] | undefined; 'service.address'?: string | undefined; 'service.environment'?: string | undefined; 'service.ephemeral_id'?: string | undefined; 'service.id'?: string | undefined; 'service.name'?: string | undefined; 'service.node.name'?: string | undefined; 'service.node.role'?: string | undefined; 'service.node.roles'?: string[] | undefined; 'service.origin.address'?: string | undefined; 'service.origin.environment'?: string | undefined; 'service.origin.ephemeral_id'?: string | undefined; 'service.origin.id'?: string | undefined; 'service.origin.name'?: string | undefined; 'service.origin.node.name'?: string | undefined; 'service.origin.node.role'?: string | undefined; 'service.origin.node.roles'?: string[] | undefined; 'service.origin.state'?: string | undefined; 'service.origin.type'?: string | undefined; 'service.origin.version'?: string | undefined; 'service.state'?: string | undefined; 'service.target.address'?: string | undefined; 'service.target.environment'?: string | undefined; 'service.target.ephemeral_id'?: string | undefined; 'service.target.id'?: string | undefined; 'service.target.name'?: string | undefined; 'service.target.node.name'?: string | undefined; 'service.target.node.role'?: string | undefined; 'service.target.node.roles'?: string[] | undefined; 'service.target.state'?: string | undefined; 'service.target.type'?: string | undefined; 'service.target.version'?: string | undefined; 'service.type'?: string | undefined; 'service.version'?: string | undefined; 'source.address'?: string | undefined; 'source.as.number'?: string | number | undefined; 'source.as.organization.name'?: string | undefined; 'source.bytes'?: string | number | undefined; 'source.domain'?: string | undefined; 'source.geo.city_name'?: string | undefined; 'source.geo.continent_code'?: string | undefined; 'source.geo.continent_name'?: string | undefined; 'source.geo.country_iso_code'?: string | undefined; 'source.geo.country_name'?: string | undefined; 'source.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'source.geo.name'?: string | undefined; 'source.geo.postal_code'?: string | undefined; 'source.geo.region_iso_code'?: string | undefined; 'source.geo.region_name'?: string | undefined; 'source.geo.timezone'?: string | undefined; 'source.ip'?: string | undefined; 'source.mac'?: string | undefined; 'source.nat.ip'?: string | undefined; 'source.nat.port'?: string | number | undefined; 'source.packets'?: string | number | undefined; 'source.port'?: string | number | undefined; 'source.registered_domain'?: string | undefined; 'source.subdomain'?: string | undefined; 'source.top_level_domain'?: string | undefined; 'source.user.domain'?: string | undefined; 'source.user.email'?: string | undefined; 'source.user.full_name'?: string | undefined; 'source.user.group.domain'?: string | undefined; 'source.user.group.id'?: string | undefined; 'source.user.group.name'?: string | undefined; 'source.user.hash'?: string | undefined; 'source.user.id'?: string | undefined; 'source.user.name'?: string | undefined; 'source.user.roles'?: string[] | undefined; 'span.id'?: string | undefined; tags?: string[] | undefined; 'threat.enrichments'?: { indicator?: unknown; 'matched.atomic'?: string | undefined; 'matched.field'?: string | undefined; 'matched.id'?: string | undefined; 'matched.index'?: string | undefined; 'matched.occurred'?: string | number | undefined; 'matched.type'?: string | undefined; }[] | undefined; 'threat.feed.dashboard_id'?: string | undefined; 'threat.feed.description'?: string | undefined; 'threat.feed.name'?: string | undefined; 'threat.feed.reference'?: string | undefined; 'threat.framework'?: string | undefined; 'threat.group.alias'?: string[] | undefined; 'threat.group.id'?: string | undefined; 'threat.group.name'?: string | undefined; 'threat.group.reference'?: string | undefined; 'threat.indicator.as.number'?: string | number | undefined; 'threat.indicator.as.organization.name'?: string | undefined; 'threat.indicator.confidence'?: string | undefined; 'threat.indicator.description'?: string | undefined; 'threat.indicator.email.address'?: string | undefined; 'threat.indicator.file.accessed'?: string | number | undefined; 'threat.indicator.file.attributes'?: string[] | undefined; 'threat.indicator.file.code_signature.digest_algorithm'?: string | undefined; 'threat.indicator.file.code_signature.exists'?: boolean | undefined; 'threat.indicator.file.code_signature.signing_id'?: string | undefined; 'threat.indicator.file.code_signature.status'?: string | undefined; 'threat.indicator.file.code_signature.subject_name'?: string | undefined; 'threat.indicator.file.code_signature.team_id'?: string | undefined; 'threat.indicator.file.code_signature.timestamp'?: string | number | undefined; 'threat.indicator.file.code_signature.trusted'?: boolean | undefined; 'threat.indicator.file.code_signature.valid'?: boolean | undefined; 'threat.indicator.file.created'?: string | number | undefined; 'threat.indicator.file.ctime'?: string | number | undefined; 'threat.indicator.file.device'?: string | undefined; 'threat.indicator.file.directory'?: string | undefined; 'threat.indicator.file.drive_letter'?: string | undefined; 'threat.indicator.file.elf.architecture'?: string | undefined; 'threat.indicator.file.elf.byte_order'?: string | undefined; 'threat.indicator.file.elf.cpu_type'?: string | undefined; 'threat.indicator.file.elf.creation_date'?: string | number | undefined; 'threat.indicator.file.elf.exports'?: unknown[] | undefined; 'threat.indicator.file.elf.header.abi_version'?: string | undefined; 'threat.indicator.file.elf.header.class'?: string | undefined; 'threat.indicator.file.elf.header.data'?: string | undefined; 'threat.indicator.file.elf.header.entrypoint'?: string | number | undefined; 'threat.indicator.file.elf.header.object_version'?: string | undefined; 'threat.indicator.file.elf.header.os_abi'?: string | undefined; 'threat.indicator.file.elf.header.type'?: string | undefined; 'threat.indicator.file.elf.header.version'?: string | undefined; 'threat.indicator.file.elf.imports'?: unknown[] | undefined; 'threat.indicator.file.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'threat.indicator.file.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'threat.indicator.file.elf.shared_libraries'?: string[] | undefined; 'threat.indicator.file.elf.telfhash'?: string | undefined; 'threat.indicator.file.extension'?: string | undefined; 'threat.indicator.file.fork_name'?: string | undefined; 'threat.indicator.file.gid'?: string | undefined; 'threat.indicator.file.group'?: string | undefined; 'threat.indicator.file.hash.md5'?: string | undefined; 'threat.indicator.file.hash.sha1'?: string | undefined; 'threat.indicator.file.hash.sha256'?: string | undefined; 'threat.indicator.file.hash.sha384'?: string | undefined; 'threat.indicator.file.hash.sha512'?: string | undefined; 'threat.indicator.file.hash.ssdeep'?: string | undefined; 'threat.indicator.file.hash.tlsh'?: string | undefined; 'threat.indicator.file.inode'?: string | undefined; 'threat.indicator.file.mime_type'?: string | undefined; 'threat.indicator.file.mode'?: string | undefined; 'threat.indicator.file.mtime'?: string | number | undefined; 'threat.indicator.file.name'?: string | undefined; 'threat.indicator.file.owner'?: string | undefined; 'threat.indicator.file.path'?: string | undefined; 'threat.indicator.file.pe.architecture'?: string | undefined; 'threat.indicator.file.pe.company'?: string | undefined; 'threat.indicator.file.pe.description'?: string | undefined; 'threat.indicator.file.pe.file_version'?: string | undefined; 'threat.indicator.file.pe.imphash'?: string | undefined; 'threat.indicator.file.pe.original_file_name'?: string | undefined; 'threat.indicator.file.pe.pehash'?: string | undefined; 'threat.indicator.file.pe.product'?: string | undefined; 'threat.indicator.file.size'?: string | number | undefined; 'threat.indicator.file.target_path'?: string | undefined; 'threat.indicator.file.type'?: string | undefined; 'threat.indicator.file.uid'?: string | undefined; 'threat.indicator.file.x509.alternative_names'?: string[] | undefined; 'threat.indicator.file.x509.issuer.common_name'?: string[] | undefined; 'threat.indicator.file.x509.issuer.country'?: string[] | undefined; 'threat.indicator.file.x509.issuer.distinguished_name'?: string | undefined; 'threat.indicator.file.x509.issuer.locality'?: string[] | undefined; 'threat.indicator.file.x509.issuer.organization'?: string[] | undefined; 'threat.indicator.file.x509.issuer.organizational_unit'?: string[] | undefined; 'threat.indicator.file.x509.issuer.state_or_province'?: string[] | undefined; 'threat.indicator.file.x509.not_after'?: string | number | undefined; 'threat.indicator.file.x509.not_before'?: string | number | undefined; 'threat.indicator.file.x509.public_key_algorithm'?: string | undefined; 'threat.indicator.file.x509.public_key_curve'?: string | undefined; 'threat.indicator.file.x509.public_key_exponent'?: string | number | undefined; 'threat.indicator.file.x509.public_key_size'?: string | number | undefined; 'threat.indicator.file.x509.serial_number'?: string | undefined; 'threat.indicator.file.x509.signature_algorithm'?: string | undefined; 'threat.indicator.file.x509.subject.common_name'?: string[] | undefined; 'threat.indicator.file.x509.subject.country'?: string[] | undefined; 'threat.indicator.file.x509.subject.distinguished_name'?: string | undefined; 'threat.indicator.file.x509.subject.locality'?: string[] | undefined; 'threat.indicator.file.x509.subject.organization'?: string[] | undefined; 'threat.indicator.file.x509.subject.organizational_unit'?: string[] | undefined; 'threat.indicator.file.x509.subject.state_or_province'?: string[] | undefined; 'threat.indicator.file.x509.version_number'?: string | undefined; 'threat.indicator.first_seen'?: string | number | undefined; 'threat.indicator.geo.city_name'?: string | undefined; 'threat.indicator.geo.continent_code'?: string | undefined; 'threat.indicator.geo.continent_name'?: string | undefined; 'threat.indicator.geo.country_iso_code'?: string | undefined; 'threat.indicator.geo.country_name'?: string | undefined; 'threat.indicator.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'threat.indicator.geo.name'?: string | undefined; 'threat.indicator.geo.postal_code'?: string | undefined; 'threat.indicator.geo.region_iso_code'?: string | undefined; 'threat.indicator.geo.region_name'?: string | undefined; 'threat.indicator.geo.timezone'?: string | undefined; 'threat.indicator.ip'?: string | undefined; 'threat.indicator.last_seen'?: string | number | undefined; 'threat.indicator.marking.tlp'?: string | undefined; 'threat.indicator.marking.tlp_version'?: string | undefined; 'threat.indicator.modified_at'?: string | number | undefined; 'threat.indicator.port'?: string | number | undefined; 'threat.indicator.provider'?: string | undefined; 'threat.indicator.reference'?: string | undefined; 'threat.indicator.registry.data.bytes'?: string | undefined; 'threat.indicator.registry.data.strings'?: string[] | undefined; 'threat.indicator.registry.data.type'?: string | undefined; 'threat.indicator.registry.hive'?: string | undefined; 'threat.indicator.registry.key'?: string | undefined; 'threat.indicator.registry.path'?: string | undefined; 'threat.indicator.registry.value'?: string | undefined; 'threat.indicator.scanner_stats'?: string | number | undefined; 'threat.indicator.sightings'?: string | number | undefined; 'threat.indicator.type'?: string | undefined; 'threat.indicator.url.domain'?: string | undefined; 'threat.indicator.url.extension'?: string | undefined; 'threat.indicator.url.fragment'?: string | undefined; 'threat.indicator.url.full'?: string | undefined; 'threat.indicator.url.original'?: string | undefined; 'threat.indicator.url.password'?: string | undefined; 'threat.indicator.url.path'?: string | undefined; 'threat.indicator.url.port'?: string | number | undefined; 'threat.indicator.url.query'?: string | undefined; 'threat.indicator.url.registered_domain'?: string | undefined; 'threat.indicator.url.scheme'?: string | undefined; 'threat.indicator.url.subdomain'?: string | undefined; 'threat.indicator.url.top_level_domain'?: string | undefined; 'threat.indicator.url.username'?: string | undefined; 'threat.indicator.x509.alternative_names'?: string[] | undefined; 'threat.indicator.x509.issuer.common_name'?: string[] | undefined; 'threat.indicator.x509.issuer.country'?: string[] | undefined; 'threat.indicator.x509.issuer.distinguished_name'?: string | undefined; 'threat.indicator.x509.issuer.locality'?: string[] | undefined; 'threat.indicator.x509.issuer.organization'?: string[] | undefined; 'threat.indicator.x509.issuer.organizational_unit'?: string[] | undefined; 'threat.indicator.x509.issuer.state_or_province'?: string[] | undefined; 'threat.indicator.x509.not_after'?: string | number | undefined; 'threat.indicator.x509.not_before'?: string | number | undefined; 'threat.indicator.x509.public_key_algorithm'?: string | undefined; 'threat.indicator.x509.public_key_curve'?: string | undefined; 'threat.indicator.x509.public_key_exponent'?: string | number | undefined; 'threat.indicator.x509.public_key_size'?: string | number | undefined; 'threat.indicator.x509.serial_number'?: string | undefined; 'threat.indicator.x509.signature_algorithm'?: string | undefined; 'threat.indicator.x509.subject.common_name'?: string[] | undefined; 'threat.indicator.x509.subject.country'?: string[] | undefined; 'threat.indicator.x509.subject.distinguished_name'?: string | undefined; 'threat.indicator.x509.subject.locality'?: string[] | undefined; 'threat.indicator.x509.subject.organization'?: string[] | undefined; 'threat.indicator.x509.subject.organizational_unit'?: string[] | undefined; 'threat.indicator.x509.subject.state_or_province'?: string[] | undefined; 'threat.indicator.x509.version_number'?: string | undefined; 'threat.software.alias'?: string[] | undefined; 'threat.software.id'?: string | undefined; 'threat.software.name'?: string | undefined; 'threat.software.platforms'?: string[] | undefined; 'threat.software.reference'?: string | undefined; 'threat.software.type'?: string | undefined; 'threat.tactic.id'?: string[] | undefined; 'threat.tactic.name'?: string[] | undefined; 'threat.tactic.reference'?: string[] | undefined; 'threat.technique.id'?: string[] | undefined; 'threat.technique.name'?: string[] | undefined; 'threat.technique.reference'?: string[] | undefined; 'threat.technique.subtechnique.id'?: string[] | undefined; 'threat.technique.subtechnique.name'?: string[] | undefined; 'threat.technique.subtechnique.reference'?: string[] | undefined; 'tls.cipher'?: string | undefined; 'tls.client.certificate'?: string | undefined; 'tls.client.certificate_chain'?: string[] | undefined; 'tls.client.hash.md5'?: string | undefined; 'tls.client.hash.sha1'?: string | undefined; 'tls.client.hash.sha256'?: string | undefined; 'tls.client.issuer'?: string | undefined; 'tls.client.ja3'?: string | undefined; 'tls.client.not_after'?: string | number | undefined; 'tls.client.not_before'?: string | number | undefined; 'tls.client.server_name'?: string | undefined; 'tls.client.subject'?: string | undefined; 'tls.client.supported_ciphers'?: string[] | undefined; 'tls.client.x509.alternative_names'?: string[] | undefined; 'tls.client.x509.issuer.common_name'?: string[] | undefined; 'tls.client.x509.issuer.country'?: string[] | undefined; 'tls.client.x509.issuer.distinguished_name'?: string | undefined; 'tls.client.x509.issuer.locality'?: string[] | undefined; 'tls.client.x509.issuer.organization'?: string[] | undefined; 'tls.client.x509.issuer.organizational_unit'?: string[] | undefined; 'tls.client.x509.issuer.state_or_province'?: string[] | undefined; 'tls.client.x509.not_after'?: string | number | undefined; 'tls.client.x509.not_before'?: string | number | undefined; 'tls.client.x509.public_key_algorithm'?: string | undefined; 'tls.client.x509.public_key_curve'?: string | undefined; 'tls.client.x509.public_key_exponent'?: string | number | undefined; 'tls.client.x509.public_key_size'?: string | number | undefined; 'tls.client.x509.serial_number'?: string | undefined; 'tls.client.x509.signature_algorithm'?: string | undefined; 'tls.client.x509.subject.common_name'?: string[] | undefined; 'tls.client.x509.subject.country'?: string[] | undefined; 'tls.client.x509.subject.distinguished_name'?: string | undefined; 'tls.client.x509.subject.locality'?: string[] | undefined; 'tls.client.x509.subject.organization'?: string[] | undefined; 'tls.client.x509.subject.organizational_unit'?: string[] | undefined; 'tls.client.x509.subject.state_or_province'?: string[] | undefined; 'tls.client.x509.version_number'?: string | undefined; 'tls.curve'?: string | undefined; 'tls.established'?: boolean | undefined; 'tls.next_protocol'?: string | undefined; 'tls.resumed'?: boolean | undefined; 'tls.server.certificate'?: string | undefined; 'tls.server.certificate_chain'?: string[] | undefined; 'tls.server.hash.md5'?: string | undefined; 'tls.server.hash.sha1'?: string | undefined; 'tls.server.hash.sha256'?: string | undefined; 'tls.server.issuer'?: string | undefined; 'tls.server.ja3s'?: string | undefined; 'tls.server.not_after'?: string | number | undefined; 'tls.server.not_before'?: string | number | undefined; 'tls.server.subject'?: string | undefined; 'tls.server.x509.alternative_names'?: string[] | undefined; 'tls.server.x509.issuer.common_name'?: string[] | undefined; 'tls.server.x509.issuer.country'?: string[] | undefined; 'tls.server.x509.issuer.distinguished_name'?: string | undefined; 'tls.server.x509.issuer.locality'?: string[] | undefined; 'tls.server.x509.issuer.organization'?: string[] | undefined; 'tls.server.x509.issuer.organizational_unit'?: string[] | undefined; 'tls.server.x509.issuer.state_or_province'?: string[] | undefined; 'tls.server.x509.not_after'?: string | number | undefined; 'tls.server.x509.not_before'?: string | number | undefined; 'tls.server.x509.public_key_algorithm'?: string | undefined; 'tls.server.x509.public_key_curve'?: string | undefined; 'tls.server.x509.public_key_exponent'?: string | number | undefined; 'tls.server.x509.public_key_size'?: string | number | undefined; 'tls.server.x509.serial_number'?: string | undefined; 'tls.server.x509.signature_algorithm'?: string | undefined; 'tls.server.x509.subject.common_name'?: string[] | undefined; 'tls.server.x509.subject.country'?: string[] | undefined; 'tls.server.x509.subject.distinguished_name'?: string | undefined; 'tls.server.x509.subject.locality'?: string[] | undefined; 'tls.server.x509.subject.organization'?: string[] | undefined; 'tls.server.x509.subject.organizational_unit'?: string[] | undefined; 'tls.server.x509.subject.state_or_province'?: string[] | undefined; 'tls.server.x509.version_number'?: string | undefined; 'tls.version'?: string | undefined; 'tls.version_protocol'?: string | undefined; 'trace.id'?: string | undefined; 'transaction.id'?: string | undefined; 'url.domain'?: string | undefined; 'url.extension'?: string | undefined; 'url.fragment'?: string | undefined; 'url.full'?: string | undefined; 'url.original'?: string | undefined; 'url.password'?: string | undefined; 'url.path'?: string | undefined; 'url.port'?: string | number | undefined; 'url.query'?: string | undefined; 'url.registered_domain'?: string | undefined; 'url.scheme'?: string | undefined; 'url.subdomain'?: string | undefined; 'url.top_level_domain'?: string | undefined; 'url.username'?: string | undefined; 'user.changes.domain'?: string | undefined; 'user.changes.email'?: string | undefined; 'user.changes.full_name'?: string | undefined; 'user.changes.group.domain'?: string | undefined; 'user.changes.group.id'?: string | undefined; 'user.changes.group.name'?: string | undefined; 'user.changes.hash'?: string | undefined; 'user.changes.id'?: string | undefined; 'user.changes.name'?: string | undefined; 'user.changes.roles'?: string[] | undefined; 'user.domain'?: string | undefined; 'user.effective.domain'?: string | undefined; 'user.effective.email'?: string | undefined; 'user.effective.full_name'?: string | undefined; 'user.effective.group.domain'?: string | undefined; 'user.effective.group.id'?: string | undefined; 'user.effective.group.name'?: string | undefined; 'user.effective.hash'?: string | undefined; 'user.effective.id'?: string | undefined; 'user.effective.name'?: string | undefined; 'user.effective.roles'?: string[] | undefined; 'user.email'?: string | undefined; 'user.full_name'?: string | undefined; 'user.group.domain'?: string | undefined; 'user.group.id'?: string | undefined; 'user.group.name'?: string | undefined; 'user.hash'?: string | undefined; 'user.id'?: string | undefined; 'user.name'?: string | undefined; 'user.risk.calculated_level'?: string | undefined; 'user.risk.calculated_score'?: number | undefined; 'user.risk.calculated_score_norm'?: number | undefined; 'user.risk.static_level'?: string | undefined; 'user.risk.static_score'?: number | undefined; 'user.risk.static_score_norm'?: number | undefined; 'user.roles'?: string[] | undefined; 'user.target.domain'?: string | undefined; 'user.target.email'?: string | undefined; 'user.target.full_name'?: string | undefined; 'user.target.group.domain'?: string | undefined; 'user.target.group.id'?: string | undefined; 'user.target.group.name'?: string | undefined; 'user.target.hash'?: string | undefined; 'user.target.id'?: string | undefined; 'user.target.name'?: string | undefined; 'user.target.roles'?: string[] | undefined; 'user_agent.device.name'?: string | undefined; 'user_agent.name'?: string | undefined; 'user_agent.original'?: string | undefined; 'user_agent.os.family'?: string | undefined; 'user_agent.os.full'?: string | undefined; 'user_agent.os.kernel'?: string | undefined; 'user_agent.os.name'?: string | undefined; 'user_agent.os.platform'?: string | undefined; 'user_agent.os.type'?: string | undefined; 'user_agent.os.version'?: string | undefined; 'user_agent.version'?: string | undefined; 'vulnerability.category'?: string[] | undefined; 'vulnerability.classification'?: string | undefined; 'vulnerability.description'?: string | undefined; 'vulnerability.enumeration'?: string | undefined; 'vulnerability.id'?: string | undefined; 'vulnerability.reference'?: string | undefined; 'vulnerability.report_id'?: string | undefined; 'vulnerability.scanner.vendor'?: string | undefined; 'vulnerability.score.base'?: number | undefined; 'vulnerability.score.environmental'?: number | undefined; 'vulnerability.score.temporal'?: number | undefined; 'vulnerability.score.version'?: string | undefined; 'vulnerability.severity'?: string | undefined; } & {} & { 'ecs.version'?: string | undefined; 'kibana.alert.risk_score'?: number | undefined; 'kibana.alert.rule.author'?: string | undefined; 'kibana.alert.rule.created_at'?: string | number | undefined; 'kibana.alert.rule.created_by'?: string | undefined; 'kibana.alert.rule.description'?: string | undefined; 'kibana.alert.rule.enabled'?: string | undefined; 'kibana.alert.rule.from'?: string | undefined; 'kibana.alert.rule.interval'?: string | undefined; 'kibana.alert.rule.license'?: string | undefined; 'kibana.alert.rule.note'?: string | undefined; 'kibana.alert.rule.references'?: string[] | undefined; 'kibana.alert.rule.rule_id'?: string | undefined; 'kibana.alert.rule.rule_name_override'?: string | undefined; 'kibana.alert.rule.to'?: string | undefined; 'kibana.alert.rule.type'?: string | undefined; 'kibana.alert.rule.updated_at'?: string | number | undefined; 'kibana.alert.rule.updated_by'?: string | undefined; 'kibana.alert.rule.version'?: string | undefined; 'kibana.alert.severity'?: string | undefined; 'kibana.alert.suppression.docs_count'?: string | number | undefined; 'kibana.alert.suppression.end'?: string | number | undefined; 'kibana.alert.suppression.start'?: string | number | undefined; 'kibana.alert.suppression.terms.field'?: string[] | undefined; 'kibana.alert.suppression.terms.value'?: string[] | undefined; 'kibana.alert.system_status'?: string | undefined; 'kibana.alert.workflow_reason'?: string | undefined; 'kibana.alert.workflow_status_updated_at'?: string | number | undefined; 'kibana.alert.workflow_user'?: string | undefined; }) | ({ 'kibana.alert.job_id': string; } & { 'kibana.alert.anomaly_score'?: number | undefined; 'kibana.alert.anomaly_timestamp'?: string | number | undefined; 'kibana.alert.is_interim'?: boolean | undefined; 'kibana.alert.top_influencers'?: { influencer_field_name?: string | undefined; influencer_field_value?: string | undefined; influencer_score?: number | undefined; initial_influencer_score?: number | undefined; is_interim?: boolean | undefined; job_id?: string | undefined; timestamp?: string | number | undefined; }[] | undefined; 'kibana.alert.top_records'?: { actual?: number | undefined; by_field_name?: string | undefined; by_field_value?: string | undefined; detector_index?: number | undefined; field_name?: string | undefined; function?: string | undefined; initial_record_score?: number | undefined; is_interim?: boolean | undefined; job_id?: string | undefined; over_field_name?: string | undefined; over_field_value?: string | undefined; partition_field_name?: string | undefined; partition_field_value?: string | undefined; record_score?: number | undefined; timestamp?: string | number | undefined; typical?: number | undefined; }[] | undefined; } & { '@timestamp': string | number; 'kibana.alert.instance.id': string; 'kibana.alert.rule.category': string; 'kibana.alert.rule.consumer': string; 'kibana.alert.rule.name': string; 'kibana.alert.rule.producer': string; 'kibana.alert.rule.revision': string | number; 'kibana.alert.rule.rule_type_id': string; 'kibana.alert.rule.uuid': string; 'kibana.alert.status': string; 'kibana.alert.uuid': string; 'kibana.space_ids': string[]; } & { 'event.action'?: string | undefined; 'event.kind'?: string | undefined; 'kibana.alert.action_group'?: string | undefined; 'kibana.alert.case_ids'?: string[] | undefined; 'kibana.alert.duration.us'?: string | number | undefined; 'kibana.alert.end'?: string | number | undefined; 'kibana.alert.flapping'?: boolean | undefined; 'kibana.alert.flapping_history'?: boolean[] | undefined; 'kibana.alert.last_detected'?: string | number | undefined; 'kibana.alert.maintenance_window_ids'?: string[] | undefined; 'kibana.alert.reason'?: string | undefined; 'kibana.alert.rule.execution.uuid'?: string | undefined; 'kibana.alert.rule.parameters'?: unknown; 'kibana.alert.rule.tags'?: string[] | undefined; 'kibana.alert.start'?: string | number | undefined; 'kibana.alert.time_range'?: { gte?: string | number | undefined; lte?: string | number | undefined; } | undefined; 'kibana.alert.url'?: string | undefined; 'kibana.alert.workflow_assignee_ids'?: string[] | undefined; 'kibana.alert.workflow_status'?: string | undefined; 'kibana.alert.workflow_tags'?: string[] | undefined; 'kibana.version'?: string | undefined; tags?: string[] | undefined; })" + "({ '@timestamp': string | number; 'kibana.alert.instance.id': string; 'kibana.alert.rule.category': string; 'kibana.alert.rule.consumer': string; 'kibana.alert.rule.name': string; 'kibana.alert.rule.producer': string; 'kibana.alert.rule.revision': string | number; 'kibana.alert.rule.rule_type_id': string; 'kibana.alert.rule.uuid': string; 'kibana.alert.status': string; 'kibana.alert.uuid': string; 'kibana.space_ids': string[]; } & { 'event.action'?: string | undefined; 'event.kind'?: string | undefined; 'kibana.alert.action_group'?: string | undefined; 'kibana.alert.case_ids'?: string[] | undefined; 'kibana.alert.duration.us'?: string | number | undefined; 'kibana.alert.end'?: string | number | undefined; 'kibana.alert.flapping'?: boolean | undefined; 'kibana.alert.flapping_history'?: boolean[] | undefined; 'kibana.alert.last_detected'?: string | number | undefined; 'kibana.alert.maintenance_window_ids'?: string[] | undefined; 'kibana.alert.reason'?: string | undefined; 'kibana.alert.rule.execution.uuid'?: string | undefined; 'kibana.alert.rule.parameters'?: unknown; 'kibana.alert.rule.tags'?: string[] | undefined; 'kibana.alert.start'?: string | number | undefined; 'kibana.alert.time_range'?: { gte?: string | number | undefined; lte?: string | number | undefined; } | undefined; 'kibana.alert.url'?: string | undefined; 'kibana.alert.workflow_assignee_ids'?: string[] | undefined; 'kibana.alert.workflow_status'?: string | undefined; 'kibana.alert.workflow_tags'?: string[] | undefined; 'kibana.version'?: string | undefined; tags?: string[] | undefined; }) | ({} & {} & { '@timestamp': string | number; 'kibana.alert.instance.id': string; 'kibana.alert.rule.category': string; 'kibana.alert.rule.consumer': string; 'kibana.alert.rule.name': string; 'kibana.alert.rule.producer': string; 'kibana.alert.rule.revision': string | number; 'kibana.alert.rule.rule_type_id': string; 'kibana.alert.rule.uuid': string; 'kibana.alert.status': string; 'kibana.alert.uuid': string; 'kibana.space_ids': string[]; } & { 'event.action'?: string | undefined; 'event.kind'?: string | undefined; 'kibana.alert.action_group'?: string | undefined; 'kibana.alert.case_ids'?: string[] | undefined; 'kibana.alert.duration.us'?: string | number | undefined; 'kibana.alert.end'?: string | number | undefined; 'kibana.alert.flapping'?: boolean | undefined; 'kibana.alert.flapping_history'?: boolean[] | undefined; 'kibana.alert.last_detected'?: string | number | undefined; 'kibana.alert.maintenance_window_ids'?: string[] | undefined; 'kibana.alert.reason'?: string | undefined; 'kibana.alert.rule.execution.uuid'?: string | undefined; 'kibana.alert.rule.parameters'?: unknown; 'kibana.alert.rule.tags'?: string[] | undefined; 'kibana.alert.start'?: string | number | undefined; 'kibana.alert.time_range'?: { gte?: string | number | undefined; lte?: string | number | undefined; } | undefined; 'kibana.alert.url'?: string | undefined; 'kibana.alert.workflow_assignee_ids'?: string[] | undefined; 'kibana.alert.workflow_status'?: string | undefined; 'kibana.alert.workflow_tags'?: string[] | undefined; 'kibana.version'?: string | undefined; tags?: string[] | undefined; }) | ({} & { 'agent.name'?: string | undefined; 'error.grouping_key'?: string | undefined; 'error.grouping_name'?: string | undefined; 'kibana.alert.context'?: unknown; 'kibana.alert.evaluation.threshold'?: string | number | undefined; 'kibana.alert.evaluation.value'?: string | number | undefined; 'kibana.alert.evaluation.values'?: (string | number)[] | undefined; 'kibana.alert.group'?: { field?: string | undefined; value?: string | undefined; }[] | undefined; labels?: unknown; 'processor.event'?: string | undefined; 'service.environment'?: string | undefined; 'service.language.name'?: string | undefined; 'service.name'?: string | undefined; 'transaction.name'?: string | undefined; 'transaction.type'?: string | undefined; } & { '@timestamp': string | number; 'kibana.alert.instance.id': string; 'kibana.alert.rule.category': string; 'kibana.alert.rule.consumer': string; 'kibana.alert.rule.name': string; 'kibana.alert.rule.producer': string; 'kibana.alert.rule.revision': string | number; 'kibana.alert.rule.rule_type_id': string; 'kibana.alert.rule.uuid': string; 'kibana.alert.status': string; 'kibana.alert.uuid': string; 'kibana.space_ids': string[]; } & { 'event.action'?: string | undefined; 'event.kind'?: string | undefined; 'kibana.alert.action_group'?: string | undefined; 'kibana.alert.case_ids'?: string[] | undefined; 'kibana.alert.duration.us'?: string | number | undefined; 'kibana.alert.end'?: string | number | undefined; 'kibana.alert.flapping'?: boolean | undefined; 'kibana.alert.flapping_history'?: boolean[] | undefined; 'kibana.alert.last_detected'?: string | number | undefined; 'kibana.alert.maintenance_window_ids'?: string[] | undefined; 'kibana.alert.reason'?: string | undefined; 'kibana.alert.rule.execution.uuid'?: string | undefined; 'kibana.alert.rule.parameters'?: unknown; 'kibana.alert.rule.tags'?: string[] | undefined; 'kibana.alert.start'?: string | number | undefined; 'kibana.alert.time_range'?: { gte?: string | number | undefined; lte?: string | number | undefined; } | undefined; 'kibana.alert.url'?: string | undefined; 'kibana.alert.workflow_assignee_ids'?: string[] | undefined; 'kibana.alert.workflow_status'?: string | undefined; 'kibana.alert.workflow_tags'?: string[] | undefined; 'kibana.version'?: string | undefined; tags?: string[] | undefined; } & {} & { 'ecs.version'?: string | undefined; 'kibana.alert.risk_score'?: number | undefined; 'kibana.alert.rule.author'?: string | undefined; 'kibana.alert.rule.created_at'?: string | number | undefined; 'kibana.alert.rule.created_by'?: string | undefined; 'kibana.alert.rule.description'?: string | undefined; 'kibana.alert.rule.enabled'?: string | undefined; 'kibana.alert.rule.from'?: string | undefined; 'kibana.alert.rule.interval'?: string | undefined; 'kibana.alert.rule.license'?: string | undefined; 'kibana.alert.rule.note'?: string | undefined; 'kibana.alert.rule.references'?: string[] | undefined; 'kibana.alert.rule.rule_id'?: string | undefined; 'kibana.alert.rule.rule_name_override'?: string | undefined; 'kibana.alert.rule.to'?: string | undefined; 'kibana.alert.rule.type'?: string | undefined; 'kibana.alert.rule.updated_at'?: string | number | undefined; 'kibana.alert.rule.updated_by'?: string | undefined; 'kibana.alert.rule.version'?: string | undefined; 'kibana.alert.severity'?: string | undefined; 'kibana.alert.suppression.docs_count'?: string | number | undefined; 'kibana.alert.suppression.end'?: string | number | undefined; 'kibana.alert.suppression.start'?: string | number | undefined; 'kibana.alert.suppression.terms.field'?: string[] | undefined; 'kibana.alert.suppression.terms.value'?: string[] | undefined; 'kibana.alert.system_status'?: string | undefined; 'kibana.alert.workflow_reason'?: string | undefined; 'kibana.alert.workflow_status_updated_at'?: string | number | undefined; 'kibana.alert.workflow_user'?: string | undefined; }) | ({} & { 'kibana.alert.context'?: unknown; 'kibana.alert.evaluation.threshold'?: string | number | undefined; 'kibana.alert.evaluation.value'?: string | number | undefined; 'kibana.alert.evaluation.values'?: (string | number)[] | undefined; 'kibana.alert.group'?: { field?: string | undefined; value?: string | undefined; }[] | undefined; } & { '@timestamp': string | number; 'kibana.alert.instance.id': string; 'kibana.alert.rule.category': string; 'kibana.alert.rule.consumer': string; 'kibana.alert.rule.name': string; 'kibana.alert.rule.producer': string; 'kibana.alert.rule.revision': string | number; 'kibana.alert.rule.rule_type_id': string; 'kibana.alert.rule.uuid': string; 'kibana.alert.status': string; 'kibana.alert.uuid': string; 'kibana.space_ids': string[]; } & { 'event.action'?: string | undefined; 'event.kind'?: string | undefined; 'kibana.alert.action_group'?: string | undefined; 'kibana.alert.case_ids'?: string[] | undefined; 'kibana.alert.duration.us'?: string | number | undefined; 'kibana.alert.end'?: string | number | undefined; 'kibana.alert.flapping'?: boolean | undefined; 'kibana.alert.flapping_history'?: boolean[] | undefined; 'kibana.alert.last_detected'?: string | number | undefined; 'kibana.alert.maintenance_window_ids'?: string[] | undefined; 'kibana.alert.reason'?: string | undefined; 'kibana.alert.rule.execution.uuid'?: string | undefined; 'kibana.alert.rule.parameters'?: unknown; 'kibana.alert.rule.tags'?: string[] | undefined; 'kibana.alert.start'?: string | number | undefined; 'kibana.alert.time_range'?: { gte?: string | number | undefined; lte?: string | number | undefined; } | undefined; 'kibana.alert.url'?: string | undefined; 'kibana.alert.workflow_assignee_ids'?: string[] | undefined; 'kibana.alert.workflow_status'?: string | undefined; 'kibana.alert.workflow_tags'?: string[] | undefined; 'kibana.version'?: string | undefined; tags?: string[] | undefined; } & { '@timestamp': string | number; 'ecs.version': string; } & { 'agent.build.original'?: string | undefined; 'agent.ephemeral_id'?: string | undefined; 'agent.id'?: string | undefined; 'agent.name'?: string | undefined; 'agent.type'?: string | undefined; 'agent.version'?: string | undefined; 'client.address'?: string | undefined; 'client.as.number'?: string | number | undefined; 'client.as.organization.name'?: string | undefined; 'client.bytes'?: string | number | undefined; 'client.domain'?: string | undefined; 'client.geo.city_name'?: string | undefined; 'client.geo.continent_code'?: string | undefined; 'client.geo.continent_name'?: string | undefined; 'client.geo.country_iso_code'?: string | undefined; 'client.geo.country_name'?: string | undefined; 'client.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'client.geo.name'?: string | undefined; 'client.geo.postal_code'?: string | undefined; 'client.geo.region_iso_code'?: string | undefined; 'client.geo.region_name'?: string | undefined; 'client.geo.timezone'?: string | undefined; 'client.ip'?: string | undefined; 'client.mac'?: string | undefined; 'client.nat.ip'?: string | undefined; 'client.nat.port'?: string | number | undefined; 'client.packets'?: string | number | undefined; 'client.port'?: string | number | undefined; 'client.registered_domain'?: string | undefined; 'client.subdomain'?: string | undefined; 'client.top_level_domain'?: string | undefined; 'client.user.domain'?: string | undefined; 'client.user.email'?: string | undefined; 'client.user.full_name'?: string | undefined; 'client.user.group.domain'?: string | undefined; 'client.user.group.id'?: string | undefined; 'client.user.group.name'?: string | undefined; 'client.user.hash'?: string | undefined; 'client.user.id'?: string | undefined; 'client.user.name'?: string | undefined; 'client.user.roles'?: string[] | undefined; 'cloud.account.id'?: string | undefined; 'cloud.account.name'?: string | undefined; 'cloud.availability_zone'?: string | undefined; 'cloud.instance.id'?: string | undefined; 'cloud.instance.name'?: string | undefined; 'cloud.machine.type'?: string | undefined; 'cloud.origin.account.id'?: string | undefined; 'cloud.origin.account.name'?: string | undefined; 'cloud.origin.availability_zone'?: string | undefined; 'cloud.origin.instance.id'?: string | undefined; 'cloud.origin.instance.name'?: string | undefined; 'cloud.origin.machine.type'?: string | undefined; 'cloud.origin.project.id'?: string | undefined; 'cloud.origin.project.name'?: string | undefined; 'cloud.origin.provider'?: string | undefined; 'cloud.origin.region'?: string | undefined; 'cloud.origin.service.name'?: string | undefined; 'cloud.project.id'?: string | undefined; 'cloud.project.name'?: string | undefined; 'cloud.provider'?: string | undefined; 'cloud.region'?: string | undefined; 'cloud.service.name'?: string | undefined; 'cloud.target.account.id'?: string | undefined; 'cloud.target.account.name'?: string | undefined; 'cloud.target.availability_zone'?: string | undefined; 'cloud.target.instance.id'?: string | undefined; 'cloud.target.instance.name'?: string | undefined; 'cloud.target.machine.type'?: string | undefined; 'cloud.target.project.id'?: string | undefined; 'cloud.target.project.name'?: string | undefined; 'cloud.target.provider'?: string | undefined; 'cloud.target.region'?: string | undefined; 'cloud.target.service.name'?: string | undefined; 'container.cpu.usage'?: string | number | undefined; 'container.disk.read.bytes'?: string | number | undefined; 'container.disk.write.bytes'?: string | number | undefined; 'container.id'?: string | undefined; 'container.image.hash.all'?: string[] | undefined; 'container.image.name'?: string | undefined; 'container.image.tag'?: string[] | undefined; 'container.labels'?: unknown; 'container.memory.usage'?: string | number | undefined; 'container.name'?: string | undefined; 'container.network.egress.bytes'?: string | number | undefined; 'container.network.ingress.bytes'?: string | number | undefined; 'container.runtime'?: string | undefined; 'destination.address'?: string | undefined; 'destination.as.number'?: string | number | undefined; 'destination.as.organization.name'?: string | undefined; 'destination.bytes'?: string | number | undefined; 'destination.domain'?: string | undefined; 'destination.geo.city_name'?: string | undefined; 'destination.geo.continent_code'?: string | undefined; 'destination.geo.continent_name'?: string | undefined; 'destination.geo.country_iso_code'?: string | undefined; 'destination.geo.country_name'?: string | undefined; 'destination.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'destination.geo.name'?: string | undefined; 'destination.geo.postal_code'?: string | undefined; 'destination.geo.region_iso_code'?: string | undefined; 'destination.geo.region_name'?: string | undefined; 'destination.geo.timezone'?: string | undefined; 'destination.ip'?: string | undefined; 'destination.mac'?: string | undefined; 'destination.nat.ip'?: string | undefined; 'destination.nat.port'?: string | number | undefined; 'destination.packets'?: string | number | undefined; 'destination.port'?: string | number | undefined; 'destination.registered_domain'?: string | undefined; 'destination.subdomain'?: string | undefined; 'destination.top_level_domain'?: string | undefined; 'destination.user.domain'?: string | undefined; 'destination.user.email'?: string | undefined; 'destination.user.full_name'?: string | undefined; 'destination.user.group.domain'?: string | undefined; 'destination.user.group.id'?: string | undefined; 'destination.user.group.name'?: string | undefined; 'destination.user.hash'?: string | undefined; 'destination.user.id'?: string | undefined; 'destination.user.name'?: string | undefined; 'destination.user.roles'?: string[] | undefined; 'device.id'?: string | undefined; 'device.manufacturer'?: string | undefined; 'device.model.identifier'?: string | undefined; 'device.model.name'?: string | undefined; 'dll.code_signature.digest_algorithm'?: string | undefined; 'dll.code_signature.exists'?: boolean | undefined; 'dll.code_signature.signing_id'?: string | undefined; 'dll.code_signature.status'?: string | undefined; 'dll.code_signature.subject_name'?: string | undefined; 'dll.code_signature.team_id'?: string | undefined; 'dll.code_signature.timestamp'?: string | number | undefined; 'dll.code_signature.trusted'?: boolean | undefined; 'dll.code_signature.valid'?: boolean | undefined; 'dll.hash.md5'?: string | undefined; 'dll.hash.sha1'?: string | undefined; 'dll.hash.sha256'?: string | undefined; 'dll.hash.sha384'?: string | undefined; 'dll.hash.sha512'?: string | undefined; 'dll.hash.ssdeep'?: string | undefined; 'dll.hash.tlsh'?: string | undefined; 'dll.name'?: string | undefined; 'dll.path'?: string | undefined; 'dll.pe.architecture'?: string | undefined; 'dll.pe.company'?: string | undefined; 'dll.pe.description'?: string | undefined; 'dll.pe.file_version'?: string | undefined; 'dll.pe.imphash'?: string | undefined; 'dll.pe.original_file_name'?: string | undefined; 'dll.pe.pehash'?: string | undefined; 'dll.pe.product'?: string | undefined; 'dns.answers'?: { class?: string | undefined; data?: string | undefined; name?: string | undefined; ttl?: string | number | undefined; type?: string | undefined; }[] | undefined; 'dns.header_flags'?: string[] | undefined; 'dns.id'?: string | undefined; 'dns.op_code'?: string | undefined; 'dns.question.class'?: string | undefined; 'dns.question.name'?: string | undefined; 'dns.question.registered_domain'?: string | undefined; 'dns.question.subdomain'?: string | undefined; 'dns.question.top_level_domain'?: string | undefined; 'dns.question.type'?: string | undefined; 'dns.resolved_ip'?: string[] | undefined; 'dns.response_code'?: string | undefined; 'dns.type'?: string | undefined; 'email.attachments'?: { 'file.extension'?: string | undefined; 'file.hash.md5'?: string | undefined; 'file.hash.sha1'?: string | undefined; 'file.hash.sha256'?: string | undefined; 'file.hash.sha384'?: string | undefined; 'file.hash.sha512'?: string | undefined; 'file.hash.ssdeep'?: string | undefined; 'file.hash.tlsh'?: string | undefined; 'file.mime_type'?: string | undefined; 'file.name'?: string | undefined; 'file.size'?: string | number | undefined; }[] | undefined; 'email.bcc.address'?: string[] | undefined; 'email.cc.address'?: string[] | undefined; 'email.content_type'?: string | undefined; 'email.delivery_timestamp'?: string | number | undefined; 'email.direction'?: string | undefined; 'email.from.address'?: string[] | undefined; 'email.local_id'?: string | undefined; 'email.message_id'?: string | undefined; 'email.origination_timestamp'?: string | number | undefined; 'email.reply_to.address'?: string[] | undefined; 'email.sender.address'?: string | undefined; 'email.subject'?: string | undefined; 'email.to.address'?: string[] | undefined; 'email.x_mailer'?: string | undefined; 'error.code'?: string | undefined; 'error.id'?: string | undefined; 'error.message'?: string | undefined; 'error.stack_trace'?: string | undefined; 'error.type'?: string | undefined; 'event.action'?: string | undefined; 'event.agent_id_status'?: string | undefined; 'event.category'?: string[] | undefined; 'event.code'?: string | undefined; 'event.created'?: string | number | undefined; 'event.dataset'?: string | undefined; 'event.duration'?: string | number | undefined; 'event.end'?: string | number | undefined; 'event.hash'?: string | undefined; 'event.id'?: string | undefined; 'event.ingested'?: string | number | undefined; 'event.kind'?: string | undefined; 'event.module'?: string | undefined; 'event.original'?: string | undefined; 'event.outcome'?: string | undefined; 'event.provider'?: string | undefined; 'event.reason'?: string | undefined; 'event.reference'?: string | undefined; 'event.risk_score'?: number | undefined; 'event.risk_score_norm'?: number | undefined; 'event.sequence'?: string | number | undefined; 'event.severity'?: string | number | undefined; 'event.start'?: string | number | undefined; 'event.timezone'?: string | undefined; 'event.type'?: string[] | undefined; 'event.url'?: string | undefined; 'faas.coldstart'?: boolean | undefined; 'faas.execution'?: string | undefined; 'faas.id'?: string | undefined; 'faas.name'?: string | undefined; 'faas.version'?: string | undefined; 'file.accessed'?: string | number | undefined; 'file.attributes'?: string[] | undefined; 'file.code_signature.digest_algorithm'?: string | undefined; 'file.code_signature.exists'?: boolean | undefined; 'file.code_signature.signing_id'?: string | undefined; 'file.code_signature.status'?: string | undefined; 'file.code_signature.subject_name'?: string | undefined; 'file.code_signature.team_id'?: string | undefined; 'file.code_signature.timestamp'?: string | number | undefined; 'file.code_signature.trusted'?: boolean | undefined; 'file.code_signature.valid'?: boolean | undefined; 'file.created'?: string | number | undefined; 'file.ctime'?: string | number | undefined; 'file.device'?: string | undefined; 'file.directory'?: string | undefined; 'file.drive_letter'?: string | undefined; 'file.elf.architecture'?: string | undefined; 'file.elf.byte_order'?: string | undefined; 'file.elf.cpu_type'?: string | undefined; 'file.elf.creation_date'?: string | number | undefined; 'file.elf.exports'?: unknown[] | undefined; 'file.elf.header.abi_version'?: string | undefined; 'file.elf.header.class'?: string | undefined; 'file.elf.header.data'?: string | undefined; 'file.elf.header.entrypoint'?: string | number | undefined; 'file.elf.header.object_version'?: string | undefined; 'file.elf.header.os_abi'?: string | undefined; 'file.elf.header.type'?: string | undefined; 'file.elf.header.version'?: string | undefined; 'file.elf.imports'?: unknown[] | undefined; 'file.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'file.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'file.elf.shared_libraries'?: string[] | undefined; 'file.elf.telfhash'?: string | undefined; 'file.extension'?: string | undefined; 'file.fork_name'?: string | undefined; 'file.gid'?: string | undefined; 'file.group'?: string | undefined; 'file.hash.md5'?: string | undefined; 'file.hash.sha1'?: string | undefined; 'file.hash.sha256'?: string | undefined; 'file.hash.sha384'?: string | undefined; 'file.hash.sha512'?: string | undefined; 'file.hash.ssdeep'?: string | undefined; 'file.hash.tlsh'?: string | undefined; 'file.inode'?: string | undefined; 'file.mime_type'?: string | undefined; 'file.mode'?: string | undefined; 'file.mtime'?: string | number | undefined; 'file.name'?: string | undefined; 'file.owner'?: string | undefined; 'file.path'?: string | undefined; 'file.pe.architecture'?: string | undefined; 'file.pe.company'?: string | undefined; 'file.pe.description'?: string | undefined; 'file.pe.file_version'?: string | undefined; 'file.pe.imphash'?: string | undefined; 'file.pe.original_file_name'?: string | undefined; 'file.pe.pehash'?: string | undefined; 'file.pe.product'?: string | undefined; 'file.size'?: string | number | undefined; 'file.target_path'?: string | undefined; 'file.type'?: string | undefined; 'file.uid'?: string | undefined; 'file.x509.alternative_names'?: string[] | undefined; 'file.x509.issuer.common_name'?: string[] | undefined; 'file.x509.issuer.country'?: string[] | undefined; 'file.x509.issuer.distinguished_name'?: string | undefined; 'file.x509.issuer.locality'?: string[] | undefined; 'file.x509.issuer.organization'?: string[] | undefined; 'file.x509.issuer.organizational_unit'?: string[] | undefined; 'file.x509.issuer.state_or_province'?: string[] | undefined; 'file.x509.not_after'?: string | number | undefined; 'file.x509.not_before'?: string | number | undefined; 'file.x509.public_key_algorithm'?: string | undefined; 'file.x509.public_key_curve'?: string | undefined; 'file.x509.public_key_exponent'?: string | number | undefined; 'file.x509.public_key_size'?: string | number | undefined; 'file.x509.serial_number'?: string | undefined; 'file.x509.signature_algorithm'?: string | undefined; 'file.x509.subject.common_name'?: string[] | undefined; 'file.x509.subject.country'?: string[] | undefined; 'file.x509.subject.distinguished_name'?: string | undefined; 'file.x509.subject.locality'?: string[] | undefined; 'file.x509.subject.organization'?: string[] | undefined; 'file.x509.subject.organizational_unit'?: string[] | undefined; 'file.x509.subject.state_or_province'?: string[] | undefined; 'file.x509.version_number'?: string | undefined; 'group.domain'?: string | undefined; 'group.id'?: string | undefined; 'group.name'?: string | undefined; 'host.architecture'?: string | undefined; 'host.boot.id'?: string | undefined; 'host.cpu.usage'?: string | number | undefined; 'host.disk.read.bytes'?: string | number | undefined; 'host.disk.write.bytes'?: string | number | undefined; 'host.domain'?: string | undefined; 'host.geo.city_name'?: string | undefined; 'host.geo.continent_code'?: string | undefined; 'host.geo.continent_name'?: string | undefined; 'host.geo.country_iso_code'?: string | undefined; 'host.geo.country_name'?: string | undefined; 'host.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'host.geo.name'?: string | undefined; 'host.geo.postal_code'?: string | undefined; 'host.geo.region_iso_code'?: string | undefined; 'host.geo.region_name'?: string | undefined; 'host.geo.timezone'?: string | undefined; 'host.hostname'?: string | undefined; 'host.id'?: string | undefined; 'host.ip'?: string[] | undefined; 'host.mac'?: string[] | undefined; 'host.name'?: string | undefined; 'host.network.egress.bytes'?: string | number | undefined; 'host.network.egress.packets'?: string | number | undefined; 'host.network.ingress.bytes'?: string | number | undefined; 'host.network.ingress.packets'?: string | number | undefined; 'host.os.family'?: string | undefined; 'host.os.full'?: string | undefined; 'host.os.kernel'?: string | undefined; 'host.os.name'?: string | undefined; 'host.os.platform'?: string | undefined; 'host.os.type'?: string | undefined; 'host.os.version'?: string | undefined; 'host.pid_ns_ino'?: string | undefined; 'host.risk.calculated_level'?: string | undefined; 'host.risk.calculated_score'?: number | undefined; 'host.risk.calculated_score_norm'?: number | undefined; 'host.risk.static_level'?: string | undefined; 'host.risk.static_score'?: number | undefined; 'host.risk.static_score_norm'?: number | undefined; 'host.type'?: string | undefined; 'host.uptime'?: string | number | undefined; 'http.request.body.bytes'?: string | number | undefined; 'http.request.body.content'?: string | undefined; 'http.request.bytes'?: string | number | undefined; 'http.request.id'?: string | undefined; 'http.request.method'?: string | undefined; 'http.request.mime_type'?: string | undefined; 'http.request.referrer'?: string | undefined; 'http.response.body.bytes'?: string | number | undefined; 'http.response.body.content'?: string | undefined; 'http.response.bytes'?: string | number | undefined; 'http.response.mime_type'?: string | undefined; 'http.response.status_code'?: string | number | undefined; 'http.version'?: string | undefined; labels?: unknown; 'log.file.path'?: string | undefined; 'log.level'?: string | undefined; 'log.logger'?: string | undefined; 'log.origin.file.line'?: string | number | undefined; 'log.origin.file.name'?: string | undefined; 'log.origin.function'?: string | undefined; 'log.syslog'?: unknown; message?: string | undefined; 'network.application'?: string | undefined; 'network.bytes'?: string | number | undefined; 'network.community_id'?: string | undefined; 'network.direction'?: string | undefined; 'network.forwarded_ip'?: string | undefined; 'network.iana_number'?: string | undefined; 'network.inner'?: unknown; 'network.name'?: string | undefined; 'network.packets'?: string | number | undefined; 'network.protocol'?: string | undefined; 'network.transport'?: string | undefined; 'network.type'?: string | undefined; 'network.vlan.id'?: string | undefined; 'network.vlan.name'?: string | undefined; 'observer.egress'?: unknown; 'observer.geo.city_name'?: string | undefined; 'observer.geo.continent_code'?: string | undefined; 'observer.geo.continent_name'?: string | undefined; 'observer.geo.country_iso_code'?: string | undefined; 'observer.geo.country_name'?: string | undefined; 'observer.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'observer.geo.name'?: string | undefined; 'observer.geo.postal_code'?: string | undefined; 'observer.geo.region_iso_code'?: string | undefined; 'observer.geo.region_name'?: string | undefined; 'observer.geo.timezone'?: string | undefined; 'observer.hostname'?: string | undefined; 'observer.ingress'?: unknown; 'observer.ip'?: string[] | undefined; 'observer.mac'?: string[] | undefined; 'observer.name'?: string | undefined; 'observer.os.family'?: string | undefined; 'observer.os.full'?: string | undefined; 'observer.os.kernel'?: string | undefined; 'observer.os.name'?: string | undefined; 'observer.os.platform'?: string | undefined; 'observer.os.type'?: string | undefined; 'observer.os.version'?: string | undefined; 'observer.product'?: string | undefined; 'observer.serial_number'?: string | undefined; 'observer.type'?: string | undefined; 'observer.vendor'?: string | undefined; 'observer.version'?: string | undefined; 'orchestrator.api_version'?: string | undefined; 'orchestrator.cluster.id'?: string | undefined; 'orchestrator.cluster.name'?: string | undefined; 'orchestrator.cluster.url'?: string | undefined; 'orchestrator.cluster.version'?: string | undefined; 'orchestrator.namespace'?: string | undefined; 'orchestrator.organization'?: string | undefined; 'orchestrator.resource.id'?: string | undefined; 'orchestrator.resource.ip'?: string[] | undefined; 'orchestrator.resource.name'?: string | undefined; 'orchestrator.resource.parent.type'?: string | undefined; 'orchestrator.resource.type'?: string | undefined; 'orchestrator.type'?: string | undefined; 'organization.id'?: string | undefined; 'organization.name'?: string | undefined; 'package.architecture'?: string | undefined; 'package.build_version'?: string | undefined; 'package.checksum'?: string | undefined; 'package.description'?: string | undefined; 'package.install_scope'?: string | undefined; 'package.installed'?: string | number | undefined; 'package.license'?: string | undefined; 'package.name'?: string | undefined; 'package.path'?: string | undefined; 'package.reference'?: string | undefined; 'package.size'?: string | number | undefined; 'package.type'?: string | undefined; 'package.version'?: string | undefined; 'process.args'?: string[] | undefined; 'process.args_count'?: string | number | undefined; 'process.code_signature.digest_algorithm'?: string | undefined; 'process.code_signature.exists'?: boolean | undefined; 'process.code_signature.signing_id'?: string | undefined; 'process.code_signature.status'?: string | undefined; 'process.code_signature.subject_name'?: string | undefined; 'process.code_signature.team_id'?: string | undefined; 'process.code_signature.timestamp'?: string | number | undefined; 'process.code_signature.trusted'?: boolean | undefined; 'process.code_signature.valid'?: boolean | undefined; 'process.command_line'?: string | undefined; 'process.elf.architecture'?: string | undefined; 'process.elf.byte_order'?: string | undefined; 'process.elf.cpu_type'?: string | undefined; 'process.elf.creation_date'?: string | number | undefined; 'process.elf.exports'?: unknown[] | undefined; 'process.elf.header.abi_version'?: string | undefined; 'process.elf.header.class'?: string | undefined; 'process.elf.header.data'?: string | undefined; 'process.elf.header.entrypoint'?: string | number | undefined; 'process.elf.header.object_version'?: string | undefined; 'process.elf.header.os_abi'?: string | undefined; 'process.elf.header.type'?: string | undefined; 'process.elf.header.version'?: string | undefined; 'process.elf.imports'?: unknown[] | undefined; 'process.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'process.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'process.elf.shared_libraries'?: string[] | undefined; 'process.elf.telfhash'?: string | undefined; 'process.end'?: string | number | undefined; 'process.entity_id'?: string | undefined; 'process.entry_leader.args'?: string[] | undefined; 'process.entry_leader.args_count'?: string | number | undefined; 'process.entry_leader.attested_groups.name'?: string | undefined; 'process.entry_leader.attested_user.id'?: string | undefined; 'process.entry_leader.attested_user.name'?: string | undefined; 'process.entry_leader.command_line'?: string | undefined; 'process.entry_leader.entity_id'?: string | undefined; 'process.entry_leader.entry_meta.source.ip'?: string | undefined; 'process.entry_leader.entry_meta.type'?: string | undefined; 'process.entry_leader.executable'?: string | undefined; 'process.entry_leader.group.id'?: string | undefined; 'process.entry_leader.group.name'?: string | undefined; 'process.entry_leader.interactive'?: boolean | undefined; 'process.entry_leader.name'?: string | undefined; 'process.entry_leader.parent.entity_id'?: string | undefined; 'process.entry_leader.parent.pid'?: string | number | undefined; 'process.entry_leader.parent.session_leader.entity_id'?: string | undefined; 'process.entry_leader.parent.session_leader.pid'?: string | number | undefined; 'process.entry_leader.parent.session_leader.start'?: string | number | undefined; 'process.entry_leader.parent.start'?: string | number | undefined; 'process.entry_leader.pid'?: string | number | undefined; 'process.entry_leader.real_group.id'?: string | undefined; 'process.entry_leader.real_group.name'?: string | undefined; 'process.entry_leader.real_user.id'?: string | undefined; 'process.entry_leader.real_user.name'?: string | undefined; 'process.entry_leader.same_as_process'?: boolean | undefined; 'process.entry_leader.saved_group.id'?: string | undefined; 'process.entry_leader.saved_group.name'?: string | undefined; 'process.entry_leader.saved_user.id'?: string | undefined; 'process.entry_leader.saved_user.name'?: string | undefined; 'process.entry_leader.start'?: string | number | undefined; 'process.entry_leader.supplemental_groups.id'?: string | undefined; 'process.entry_leader.supplemental_groups.name'?: string | undefined; 'process.entry_leader.tty'?: unknown; 'process.entry_leader.user.id'?: string | undefined; 'process.entry_leader.user.name'?: string | undefined; 'process.entry_leader.working_directory'?: string | undefined; 'process.env_vars'?: string[] | undefined; 'process.executable'?: string | undefined; 'process.exit_code'?: string | number | undefined; 'process.group_leader.args'?: string[] | undefined; 'process.group_leader.args_count'?: string | number | undefined; 'process.group_leader.command_line'?: string | undefined; 'process.group_leader.entity_id'?: string | undefined; 'process.group_leader.executable'?: string | undefined; 'process.group_leader.group.id'?: string | undefined; 'process.group_leader.group.name'?: string | undefined; 'process.group_leader.interactive'?: boolean | undefined; 'process.group_leader.name'?: string | undefined; 'process.group_leader.pid'?: string | number | undefined; 'process.group_leader.real_group.id'?: string | undefined; 'process.group_leader.real_group.name'?: string | undefined; 'process.group_leader.real_user.id'?: string | undefined; 'process.group_leader.real_user.name'?: string | undefined; 'process.group_leader.same_as_process'?: boolean | undefined; 'process.group_leader.saved_group.id'?: string | undefined; 'process.group_leader.saved_group.name'?: string | undefined; 'process.group_leader.saved_user.id'?: string | undefined; 'process.group_leader.saved_user.name'?: string | undefined; 'process.group_leader.start'?: string | number | undefined; 'process.group_leader.supplemental_groups.id'?: string | undefined; 'process.group_leader.supplemental_groups.name'?: string | undefined; 'process.group_leader.tty'?: unknown; 'process.group_leader.user.id'?: string | undefined; 'process.group_leader.user.name'?: string | undefined; 'process.group_leader.working_directory'?: string | undefined; 'process.hash.md5'?: string | undefined; 'process.hash.sha1'?: string | undefined; 'process.hash.sha256'?: string | undefined; 'process.hash.sha384'?: string | undefined; 'process.hash.sha512'?: string | undefined; 'process.hash.ssdeep'?: string | undefined; 'process.hash.tlsh'?: string | undefined; 'process.interactive'?: boolean | undefined; 'process.io'?: unknown; 'process.name'?: string | undefined; 'process.parent.args'?: string[] | undefined; 'process.parent.args_count'?: string | number | undefined; 'process.parent.code_signature.digest_algorithm'?: string | undefined; 'process.parent.code_signature.exists'?: boolean | undefined; 'process.parent.code_signature.signing_id'?: string | undefined; 'process.parent.code_signature.status'?: string | undefined; 'process.parent.code_signature.subject_name'?: string | undefined; 'process.parent.code_signature.team_id'?: string | undefined; 'process.parent.code_signature.timestamp'?: string | number | undefined; 'process.parent.code_signature.trusted'?: boolean | undefined; 'process.parent.code_signature.valid'?: boolean | undefined; 'process.parent.command_line'?: string | undefined; 'process.parent.elf.architecture'?: string | undefined; 'process.parent.elf.byte_order'?: string | undefined; 'process.parent.elf.cpu_type'?: string | undefined; 'process.parent.elf.creation_date'?: string | number | undefined; 'process.parent.elf.exports'?: unknown[] | undefined; 'process.parent.elf.header.abi_version'?: string | undefined; 'process.parent.elf.header.class'?: string | undefined; 'process.parent.elf.header.data'?: string | undefined; 'process.parent.elf.header.entrypoint'?: string | number | undefined; 'process.parent.elf.header.object_version'?: string | undefined; 'process.parent.elf.header.os_abi'?: string | undefined; 'process.parent.elf.header.type'?: string | undefined; 'process.parent.elf.header.version'?: string | undefined; 'process.parent.elf.imports'?: unknown[] | undefined; 'process.parent.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'process.parent.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'process.parent.elf.shared_libraries'?: string[] | undefined; 'process.parent.elf.telfhash'?: string | undefined; 'process.parent.end'?: string | number | undefined; 'process.parent.entity_id'?: string | undefined; 'process.parent.executable'?: string | undefined; 'process.parent.exit_code'?: string | number | undefined; 'process.parent.group.id'?: string | undefined; 'process.parent.group.name'?: string | undefined; 'process.parent.group_leader.entity_id'?: string | undefined; 'process.parent.group_leader.pid'?: string | number | undefined; 'process.parent.group_leader.start'?: string | number | undefined; 'process.parent.hash.md5'?: string | undefined; 'process.parent.hash.sha1'?: string | undefined; 'process.parent.hash.sha256'?: string | undefined; 'process.parent.hash.sha384'?: string | undefined; 'process.parent.hash.sha512'?: string | undefined; 'process.parent.hash.ssdeep'?: string | undefined; 'process.parent.hash.tlsh'?: string | undefined; 'process.parent.interactive'?: boolean | undefined; 'process.parent.name'?: string | undefined; 'process.parent.pe.architecture'?: string | undefined; 'process.parent.pe.company'?: string | undefined; 'process.parent.pe.description'?: string | undefined; 'process.parent.pe.file_version'?: string | undefined; 'process.parent.pe.imphash'?: string | undefined; 'process.parent.pe.original_file_name'?: string | undefined; 'process.parent.pe.pehash'?: string | undefined; 'process.parent.pe.product'?: string | undefined; 'process.parent.pgid'?: string | number | undefined; 'process.parent.pid'?: string | number | undefined; 'process.parent.real_group.id'?: string | undefined; 'process.parent.real_group.name'?: string | undefined; 'process.parent.real_user.id'?: string | undefined; 'process.parent.real_user.name'?: string | undefined; 'process.parent.saved_group.id'?: string | undefined; 'process.parent.saved_group.name'?: string | undefined; 'process.parent.saved_user.id'?: string | undefined; 'process.parent.saved_user.name'?: string | undefined; 'process.parent.start'?: string | number | undefined; 'process.parent.supplemental_groups.id'?: string | undefined; 'process.parent.supplemental_groups.name'?: string | undefined; 'process.parent.thread.id'?: string | number | undefined; 'process.parent.thread.name'?: string | undefined; 'process.parent.title'?: string | undefined; 'process.parent.tty'?: unknown; 'process.parent.uptime'?: string | number | undefined; 'process.parent.user.id'?: string | undefined; 'process.parent.user.name'?: string | undefined; 'process.parent.working_directory'?: string | undefined; 'process.pe.architecture'?: string | undefined; 'process.pe.company'?: string | undefined; 'process.pe.description'?: string | undefined; 'process.pe.file_version'?: string | undefined; 'process.pe.imphash'?: string | undefined; 'process.pe.original_file_name'?: string | undefined; 'process.pe.pehash'?: string | undefined; 'process.pe.product'?: string | undefined; 'process.pgid'?: string | number | undefined; 'process.pid'?: string | number | undefined; 'process.previous.args'?: string[] | undefined; 'process.previous.args_count'?: string | number | undefined; 'process.previous.executable'?: string | undefined; 'process.real_group.id'?: string | undefined; 'process.real_group.name'?: string | undefined; 'process.real_user.id'?: string | undefined; 'process.real_user.name'?: string | undefined; 'process.saved_group.id'?: string | undefined; 'process.saved_group.name'?: string | undefined; 'process.saved_user.id'?: string | undefined; 'process.saved_user.name'?: string | undefined; 'process.session_leader.args'?: string[] | undefined; 'process.session_leader.args_count'?: string | number | undefined; 'process.session_leader.command_line'?: string | undefined; 'process.session_leader.entity_id'?: string | undefined; 'process.session_leader.executable'?: string | undefined; 'process.session_leader.group.id'?: string | undefined; 'process.session_leader.group.name'?: string | undefined; 'process.session_leader.interactive'?: boolean | undefined; 'process.session_leader.name'?: string | undefined; 'process.session_leader.parent.entity_id'?: string | undefined; 'process.session_leader.parent.pid'?: string | number | undefined; 'process.session_leader.parent.session_leader.entity_id'?: string | undefined; 'process.session_leader.parent.session_leader.pid'?: string | number | undefined; 'process.session_leader.parent.session_leader.start'?: string | number | undefined; 'process.session_leader.parent.start'?: string | number | undefined; 'process.session_leader.pid'?: string | number | undefined; 'process.session_leader.real_group.id'?: string | undefined; 'process.session_leader.real_group.name'?: string | undefined; 'process.session_leader.real_user.id'?: string | undefined; 'process.session_leader.real_user.name'?: string | undefined; 'process.session_leader.same_as_process'?: boolean | undefined; 'process.session_leader.saved_group.id'?: string | undefined; 'process.session_leader.saved_group.name'?: string | undefined; 'process.session_leader.saved_user.id'?: string | undefined; 'process.session_leader.saved_user.name'?: string | undefined; 'process.session_leader.start'?: string | number | undefined; 'process.session_leader.supplemental_groups.id'?: string | undefined; 'process.session_leader.supplemental_groups.name'?: string | undefined; 'process.session_leader.tty'?: unknown; 'process.session_leader.user.id'?: string | undefined; 'process.session_leader.user.name'?: string | undefined; 'process.session_leader.working_directory'?: string | undefined; 'process.start'?: string | number | undefined; 'process.supplemental_groups.id'?: string | undefined; 'process.supplemental_groups.name'?: string | undefined; 'process.thread.id'?: string | number | undefined; 'process.thread.name'?: string | undefined; 'process.title'?: string | undefined; 'process.tty'?: unknown; 'process.uptime'?: string | number | undefined; 'process.user.id'?: string | undefined; 'process.user.name'?: string | undefined; 'process.working_directory'?: string | undefined; 'registry.data.bytes'?: string | undefined; 'registry.data.strings'?: string[] | undefined; 'registry.data.type'?: string | undefined; 'registry.hive'?: string | undefined; 'registry.key'?: string | undefined; 'registry.path'?: string | undefined; 'registry.value'?: string | undefined; 'related.hash'?: string[] | undefined; 'related.hosts'?: string[] | undefined; 'related.ip'?: string[] | undefined; 'related.user'?: string[] | undefined; 'rule.author'?: string[] | undefined; 'rule.category'?: string | undefined; 'rule.description'?: string | undefined; 'rule.id'?: string | undefined; 'rule.license'?: string | undefined; 'rule.name'?: string | undefined; 'rule.reference'?: string | undefined; 'rule.ruleset'?: string | undefined; 'rule.uuid'?: string | undefined; 'rule.version'?: string | undefined; 'server.address'?: string | undefined; 'server.as.number'?: string | number | undefined; 'server.as.organization.name'?: string | undefined; 'server.bytes'?: string | number | undefined; 'server.domain'?: string | undefined; 'server.geo.city_name'?: string | undefined; 'server.geo.continent_code'?: string | undefined; 'server.geo.continent_name'?: string | undefined; 'server.geo.country_iso_code'?: string | undefined; 'server.geo.country_name'?: string | undefined; 'server.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'server.geo.name'?: string | undefined; 'server.geo.postal_code'?: string | undefined; 'server.geo.region_iso_code'?: string | undefined; 'server.geo.region_name'?: string | undefined; 'server.geo.timezone'?: string | undefined; 'server.ip'?: string | undefined; 'server.mac'?: string | undefined; 'server.nat.ip'?: string | undefined; 'server.nat.port'?: string | number | undefined; 'server.packets'?: string | number | undefined; 'server.port'?: string | number | undefined; 'server.registered_domain'?: string | undefined; 'server.subdomain'?: string | undefined; 'server.top_level_domain'?: string | undefined; 'server.user.domain'?: string | undefined; 'server.user.email'?: string | undefined; 'server.user.full_name'?: string | undefined; 'server.user.group.domain'?: string | undefined; 'server.user.group.id'?: string | undefined; 'server.user.group.name'?: string | undefined; 'server.user.hash'?: string | undefined; 'server.user.id'?: string | undefined; 'server.user.name'?: string | undefined; 'server.user.roles'?: string[] | undefined; 'service.address'?: string | undefined; 'service.environment'?: string | undefined; 'service.ephemeral_id'?: string | undefined; 'service.id'?: string | undefined; 'service.name'?: string | undefined; 'service.node.name'?: string | undefined; 'service.node.role'?: string | undefined; 'service.node.roles'?: string[] | undefined; 'service.origin.address'?: string | undefined; 'service.origin.environment'?: string | undefined; 'service.origin.ephemeral_id'?: string | undefined; 'service.origin.id'?: string | undefined; 'service.origin.name'?: string | undefined; 'service.origin.node.name'?: string | undefined; 'service.origin.node.role'?: string | undefined; 'service.origin.node.roles'?: string[] | undefined; 'service.origin.state'?: string | undefined; 'service.origin.type'?: string | undefined; 'service.origin.version'?: string | undefined; 'service.state'?: string | undefined; 'service.target.address'?: string | undefined; 'service.target.environment'?: string | undefined; 'service.target.ephemeral_id'?: string | undefined; 'service.target.id'?: string | undefined; 'service.target.name'?: string | undefined; 'service.target.node.name'?: string | undefined; 'service.target.node.role'?: string | undefined; 'service.target.node.roles'?: string[] | undefined; 'service.target.state'?: string | undefined; 'service.target.type'?: string | undefined; 'service.target.version'?: string | undefined; 'service.type'?: string | undefined; 'service.version'?: string | undefined; 'source.address'?: string | undefined; 'source.as.number'?: string | number | undefined; 'source.as.organization.name'?: string | undefined; 'source.bytes'?: string | number | undefined; 'source.domain'?: string | undefined; 'source.geo.city_name'?: string | undefined; 'source.geo.continent_code'?: string | undefined; 'source.geo.continent_name'?: string | undefined; 'source.geo.country_iso_code'?: string | undefined; 'source.geo.country_name'?: string | undefined; 'source.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'source.geo.name'?: string | undefined; 'source.geo.postal_code'?: string | undefined; 'source.geo.region_iso_code'?: string | undefined; 'source.geo.region_name'?: string | undefined; 'source.geo.timezone'?: string | undefined; 'source.ip'?: string | undefined; 'source.mac'?: string | undefined; 'source.nat.ip'?: string | undefined; 'source.nat.port'?: string | number | undefined; 'source.packets'?: string | number | undefined; 'source.port'?: string | number | undefined; 'source.registered_domain'?: string | undefined; 'source.subdomain'?: string | undefined; 'source.top_level_domain'?: string | undefined; 'source.user.domain'?: string | undefined; 'source.user.email'?: string | undefined; 'source.user.full_name'?: string | undefined; 'source.user.group.domain'?: string | undefined; 'source.user.group.id'?: string | undefined; 'source.user.group.name'?: string | undefined; 'source.user.hash'?: string | undefined; 'source.user.id'?: string | undefined; 'source.user.name'?: string | undefined; 'source.user.roles'?: string[] | undefined; 'span.id'?: string | undefined; tags?: string[] | undefined; 'threat.enrichments'?: { indicator?: unknown; 'matched.atomic'?: string | undefined; 'matched.field'?: string | undefined; 'matched.id'?: string | undefined; 'matched.index'?: string | undefined; 'matched.occurred'?: string | number | undefined; 'matched.type'?: string | undefined; }[] | undefined; 'threat.feed.dashboard_id'?: string | undefined; 'threat.feed.description'?: string | undefined; 'threat.feed.name'?: string | undefined; 'threat.feed.reference'?: string | undefined; 'threat.framework'?: string | undefined; 'threat.group.alias'?: string[] | undefined; 'threat.group.id'?: string | undefined; 'threat.group.name'?: string | undefined; 'threat.group.reference'?: string | undefined; 'threat.indicator.as.number'?: string | number | undefined; 'threat.indicator.as.organization.name'?: string | undefined; 'threat.indicator.confidence'?: string | undefined; 'threat.indicator.description'?: string | undefined; 'threat.indicator.email.address'?: string | undefined; 'threat.indicator.file.accessed'?: string | number | undefined; 'threat.indicator.file.attributes'?: string[] | undefined; 'threat.indicator.file.code_signature.digest_algorithm'?: string | undefined; 'threat.indicator.file.code_signature.exists'?: boolean | undefined; 'threat.indicator.file.code_signature.signing_id'?: string | undefined; 'threat.indicator.file.code_signature.status'?: string | undefined; 'threat.indicator.file.code_signature.subject_name'?: string | undefined; 'threat.indicator.file.code_signature.team_id'?: string | undefined; 'threat.indicator.file.code_signature.timestamp'?: string | number | undefined; 'threat.indicator.file.code_signature.trusted'?: boolean | undefined; 'threat.indicator.file.code_signature.valid'?: boolean | undefined; 'threat.indicator.file.created'?: string | number | undefined; 'threat.indicator.file.ctime'?: string | number | undefined; 'threat.indicator.file.device'?: string | undefined; 'threat.indicator.file.directory'?: string | undefined; 'threat.indicator.file.drive_letter'?: string | undefined; 'threat.indicator.file.elf.architecture'?: string | undefined; 'threat.indicator.file.elf.byte_order'?: string | undefined; 'threat.indicator.file.elf.cpu_type'?: string | undefined; 'threat.indicator.file.elf.creation_date'?: string | number | undefined; 'threat.indicator.file.elf.exports'?: unknown[] | undefined; 'threat.indicator.file.elf.header.abi_version'?: string | undefined; 'threat.indicator.file.elf.header.class'?: string | undefined; 'threat.indicator.file.elf.header.data'?: string | undefined; 'threat.indicator.file.elf.header.entrypoint'?: string | number | undefined; 'threat.indicator.file.elf.header.object_version'?: string | undefined; 'threat.indicator.file.elf.header.os_abi'?: string | undefined; 'threat.indicator.file.elf.header.type'?: string | undefined; 'threat.indicator.file.elf.header.version'?: string | undefined; 'threat.indicator.file.elf.imports'?: unknown[] | undefined; 'threat.indicator.file.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'threat.indicator.file.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'threat.indicator.file.elf.shared_libraries'?: string[] | undefined; 'threat.indicator.file.elf.telfhash'?: string | undefined; 'threat.indicator.file.extension'?: string | undefined; 'threat.indicator.file.fork_name'?: string | undefined; 'threat.indicator.file.gid'?: string | undefined; 'threat.indicator.file.group'?: string | undefined; 'threat.indicator.file.hash.md5'?: string | undefined; 'threat.indicator.file.hash.sha1'?: string | undefined; 'threat.indicator.file.hash.sha256'?: string | undefined; 'threat.indicator.file.hash.sha384'?: string | undefined; 'threat.indicator.file.hash.sha512'?: string | undefined; 'threat.indicator.file.hash.ssdeep'?: string | undefined; 'threat.indicator.file.hash.tlsh'?: string | undefined; 'threat.indicator.file.inode'?: string | undefined; 'threat.indicator.file.mime_type'?: string | undefined; 'threat.indicator.file.mode'?: string | undefined; 'threat.indicator.file.mtime'?: string | number | undefined; 'threat.indicator.file.name'?: string | undefined; 'threat.indicator.file.owner'?: string | undefined; 'threat.indicator.file.path'?: string | undefined; 'threat.indicator.file.pe.architecture'?: string | undefined; 'threat.indicator.file.pe.company'?: string | undefined; 'threat.indicator.file.pe.description'?: string | undefined; 'threat.indicator.file.pe.file_version'?: string | undefined; 'threat.indicator.file.pe.imphash'?: string | undefined; 'threat.indicator.file.pe.original_file_name'?: string | undefined; 'threat.indicator.file.pe.pehash'?: string | undefined; 'threat.indicator.file.pe.product'?: string | undefined; 'threat.indicator.file.size'?: string | number | undefined; 'threat.indicator.file.target_path'?: string | undefined; 'threat.indicator.file.type'?: string | undefined; 'threat.indicator.file.uid'?: string | undefined; 'threat.indicator.file.x509.alternative_names'?: string[] | undefined; 'threat.indicator.file.x509.issuer.common_name'?: string[] | undefined; 'threat.indicator.file.x509.issuer.country'?: string[] | undefined; 'threat.indicator.file.x509.issuer.distinguished_name'?: string | undefined; 'threat.indicator.file.x509.issuer.locality'?: string[] | undefined; 'threat.indicator.file.x509.issuer.organization'?: string[] | undefined; 'threat.indicator.file.x509.issuer.organizational_unit'?: string[] | undefined; 'threat.indicator.file.x509.issuer.state_or_province'?: string[] | undefined; 'threat.indicator.file.x509.not_after'?: string | number | undefined; 'threat.indicator.file.x509.not_before'?: string | number | undefined; 'threat.indicator.file.x509.public_key_algorithm'?: string | undefined; 'threat.indicator.file.x509.public_key_curve'?: string | undefined; 'threat.indicator.file.x509.public_key_exponent'?: string | number | undefined; 'threat.indicator.file.x509.public_key_size'?: string | number | undefined; 'threat.indicator.file.x509.serial_number'?: string | undefined; 'threat.indicator.file.x509.signature_algorithm'?: string | undefined; 'threat.indicator.file.x509.subject.common_name'?: string[] | undefined; 'threat.indicator.file.x509.subject.country'?: string[] | undefined; 'threat.indicator.file.x509.subject.distinguished_name'?: string | undefined; 'threat.indicator.file.x509.subject.locality'?: string[] | undefined; 'threat.indicator.file.x509.subject.organization'?: string[] | undefined; 'threat.indicator.file.x509.subject.organizational_unit'?: string[] | undefined; 'threat.indicator.file.x509.subject.state_or_province'?: string[] | undefined; 'threat.indicator.file.x509.version_number'?: string | undefined; 'threat.indicator.first_seen'?: string | number | undefined; 'threat.indicator.geo.city_name'?: string | undefined; 'threat.indicator.geo.continent_code'?: string | undefined; 'threat.indicator.geo.continent_name'?: string | undefined; 'threat.indicator.geo.country_iso_code'?: string | undefined; 'threat.indicator.geo.country_name'?: string | undefined; 'threat.indicator.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'threat.indicator.geo.name'?: string | undefined; 'threat.indicator.geo.postal_code'?: string | undefined; 'threat.indicator.geo.region_iso_code'?: string | undefined; 'threat.indicator.geo.region_name'?: string | undefined; 'threat.indicator.geo.timezone'?: string | undefined; 'threat.indicator.ip'?: string | undefined; 'threat.indicator.last_seen'?: string | number | undefined; 'threat.indicator.marking.tlp'?: string | undefined; 'threat.indicator.marking.tlp_version'?: string | undefined; 'threat.indicator.modified_at'?: string | number | undefined; 'threat.indicator.port'?: string | number | undefined; 'threat.indicator.provider'?: string | undefined; 'threat.indicator.reference'?: string | undefined; 'threat.indicator.registry.data.bytes'?: string | undefined; 'threat.indicator.registry.data.strings'?: string[] | undefined; 'threat.indicator.registry.data.type'?: string | undefined; 'threat.indicator.registry.hive'?: string | undefined; 'threat.indicator.registry.key'?: string | undefined; 'threat.indicator.registry.path'?: string | undefined; 'threat.indicator.registry.value'?: string | undefined; 'threat.indicator.scanner_stats'?: string | number | undefined; 'threat.indicator.sightings'?: string | number | undefined; 'threat.indicator.type'?: string | undefined; 'threat.indicator.url.domain'?: string | undefined; 'threat.indicator.url.extension'?: string | undefined; 'threat.indicator.url.fragment'?: string | undefined; 'threat.indicator.url.full'?: string | undefined; 'threat.indicator.url.original'?: string | undefined; 'threat.indicator.url.password'?: string | undefined; 'threat.indicator.url.path'?: string | undefined; 'threat.indicator.url.port'?: string | number | undefined; 'threat.indicator.url.query'?: string | undefined; 'threat.indicator.url.registered_domain'?: string | undefined; 'threat.indicator.url.scheme'?: string | undefined; 'threat.indicator.url.subdomain'?: string | undefined; 'threat.indicator.url.top_level_domain'?: string | undefined; 'threat.indicator.url.username'?: string | undefined; 'threat.indicator.x509.alternative_names'?: string[] | undefined; 'threat.indicator.x509.issuer.common_name'?: string[] | undefined; 'threat.indicator.x509.issuer.country'?: string[] | undefined; 'threat.indicator.x509.issuer.distinguished_name'?: string | undefined; 'threat.indicator.x509.issuer.locality'?: string[] | undefined; 'threat.indicator.x509.issuer.organization'?: string[] | undefined; 'threat.indicator.x509.issuer.organizational_unit'?: string[] | undefined; 'threat.indicator.x509.issuer.state_or_province'?: string[] | undefined; 'threat.indicator.x509.not_after'?: string | number | undefined; 'threat.indicator.x509.not_before'?: string | number | undefined; 'threat.indicator.x509.public_key_algorithm'?: string | undefined; 'threat.indicator.x509.public_key_curve'?: string | undefined; 'threat.indicator.x509.public_key_exponent'?: string | number | undefined; 'threat.indicator.x509.public_key_size'?: string | number | undefined; 'threat.indicator.x509.serial_number'?: string | undefined; 'threat.indicator.x509.signature_algorithm'?: string | undefined; 'threat.indicator.x509.subject.common_name'?: string[] | undefined; 'threat.indicator.x509.subject.country'?: string[] | undefined; 'threat.indicator.x509.subject.distinguished_name'?: string | undefined; 'threat.indicator.x509.subject.locality'?: string[] | undefined; 'threat.indicator.x509.subject.organization'?: string[] | undefined; 'threat.indicator.x509.subject.organizational_unit'?: string[] | undefined; 'threat.indicator.x509.subject.state_or_province'?: string[] | undefined; 'threat.indicator.x509.version_number'?: string | undefined; 'threat.software.alias'?: string[] | undefined; 'threat.software.id'?: string | undefined; 'threat.software.name'?: string | undefined; 'threat.software.platforms'?: string[] | undefined; 'threat.software.reference'?: string | undefined; 'threat.software.type'?: string | undefined; 'threat.tactic.id'?: string[] | undefined; 'threat.tactic.name'?: string[] | undefined; 'threat.tactic.reference'?: string[] | undefined; 'threat.technique.id'?: string[] | undefined; 'threat.technique.name'?: string[] | undefined; 'threat.technique.reference'?: string[] | undefined; 'threat.technique.subtechnique.id'?: string[] | undefined; 'threat.technique.subtechnique.name'?: string[] | undefined; 'threat.technique.subtechnique.reference'?: string[] | undefined; 'tls.cipher'?: string | undefined; 'tls.client.certificate'?: string | undefined; 'tls.client.certificate_chain'?: string[] | undefined; 'tls.client.hash.md5'?: string | undefined; 'tls.client.hash.sha1'?: string | undefined; 'tls.client.hash.sha256'?: string | undefined; 'tls.client.issuer'?: string | undefined; 'tls.client.ja3'?: string | undefined; 'tls.client.not_after'?: string | number | undefined; 'tls.client.not_before'?: string | number | undefined; 'tls.client.server_name'?: string | undefined; 'tls.client.subject'?: string | undefined; 'tls.client.supported_ciphers'?: string[] | undefined; 'tls.client.x509.alternative_names'?: string[] | undefined; 'tls.client.x509.issuer.common_name'?: string[] | undefined; 'tls.client.x509.issuer.country'?: string[] | undefined; 'tls.client.x509.issuer.distinguished_name'?: string | undefined; 'tls.client.x509.issuer.locality'?: string[] | undefined; 'tls.client.x509.issuer.organization'?: string[] | undefined; 'tls.client.x509.issuer.organizational_unit'?: string[] | undefined; 'tls.client.x509.issuer.state_or_province'?: string[] | undefined; 'tls.client.x509.not_after'?: string | number | undefined; 'tls.client.x509.not_before'?: string | number | undefined; 'tls.client.x509.public_key_algorithm'?: string | undefined; 'tls.client.x509.public_key_curve'?: string | undefined; 'tls.client.x509.public_key_exponent'?: string | number | undefined; 'tls.client.x509.public_key_size'?: string | number | undefined; 'tls.client.x509.serial_number'?: string | undefined; 'tls.client.x509.signature_algorithm'?: string | undefined; 'tls.client.x509.subject.common_name'?: string[] | undefined; 'tls.client.x509.subject.country'?: string[] | undefined; 'tls.client.x509.subject.distinguished_name'?: string | undefined; 'tls.client.x509.subject.locality'?: string[] | undefined; 'tls.client.x509.subject.organization'?: string[] | undefined; 'tls.client.x509.subject.organizational_unit'?: string[] | undefined; 'tls.client.x509.subject.state_or_province'?: string[] | undefined; 'tls.client.x509.version_number'?: string | undefined; 'tls.curve'?: string | undefined; 'tls.established'?: boolean | undefined; 'tls.next_protocol'?: string | undefined; 'tls.resumed'?: boolean | undefined; 'tls.server.certificate'?: string | undefined; 'tls.server.certificate_chain'?: string[] | undefined; 'tls.server.hash.md5'?: string | undefined; 'tls.server.hash.sha1'?: string | undefined; 'tls.server.hash.sha256'?: string | undefined; 'tls.server.issuer'?: string | undefined; 'tls.server.ja3s'?: string | undefined; 'tls.server.not_after'?: string | number | undefined; 'tls.server.not_before'?: string | number | undefined; 'tls.server.subject'?: string | undefined; 'tls.server.x509.alternative_names'?: string[] | undefined; 'tls.server.x509.issuer.common_name'?: string[] | undefined; 'tls.server.x509.issuer.country'?: string[] | undefined; 'tls.server.x509.issuer.distinguished_name'?: string | undefined; 'tls.server.x509.issuer.locality'?: string[] | undefined; 'tls.server.x509.issuer.organization'?: string[] | undefined; 'tls.server.x509.issuer.organizational_unit'?: string[] | undefined; 'tls.server.x509.issuer.state_or_province'?: string[] | undefined; 'tls.server.x509.not_after'?: string | number | undefined; 'tls.server.x509.not_before'?: string | number | undefined; 'tls.server.x509.public_key_algorithm'?: string | undefined; 'tls.server.x509.public_key_curve'?: string | undefined; 'tls.server.x509.public_key_exponent'?: string | number | undefined; 'tls.server.x509.public_key_size'?: string | number | undefined; 'tls.server.x509.serial_number'?: string | undefined; 'tls.server.x509.signature_algorithm'?: string | undefined; 'tls.server.x509.subject.common_name'?: string[] | undefined; 'tls.server.x509.subject.country'?: string[] | undefined; 'tls.server.x509.subject.distinguished_name'?: string | undefined; 'tls.server.x509.subject.locality'?: string[] | undefined; 'tls.server.x509.subject.organization'?: string[] | undefined; 'tls.server.x509.subject.organizational_unit'?: string[] | undefined; 'tls.server.x509.subject.state_or_province'?: string[] | undefined; 'tls.server.x509.version_number'?: string | undefined; 'tls.version'?: string | undefined; 'tls.version_protocol'?: string | undefined; 'trace.id'?: string | undefined; 'transaction.id'?: string | undefined; 'url.domain'?: string | undefined; 'url.extension'?: string | undefined; 'url.fragment'?: string | undefined; 'url.full'?: string | undefined; 'url.original'?: string | undefined; 'url.password'?: string | undefined; 'url.path'?: string | undefined; 'url.port'?: string | number | undefined; 'url.query'?: string | undefined; 'url.registered_domain'?: string | undefined; 'url.scheme'?: string | undefined; 'url.subdomain'?: string | undefined; 'url.top_level_domain'?: string | undefined; 'url.username'?: string | undefined; 'user.changes.domain'?: string | undefined; 'user.changes.email'?: string | undefined; 'user.changes.full_name'?: string | undefined; 'user.changes.group.domain'?: string | undefined; 'user.changes.group.id'?: string | undefined; 'user.changes.group.name'?: string | undefined; 'user.changes.hash'?: string | undefined; 'user.changes.id'?: string | undefined; 'user.changes.name'?: string | undefined; 'user.changes.roles'?: string[] | undefined; 'user.domain'?: string | undefined; 'user.effective.domain'?: string | undefined; 'user.effective.email'?: string | undefined; 'user.effective.full_name'?: string | undefined; 'user.effective.group.domain'?: string | undefined; 'user.effective.group.id'?: string | undefined; 'user.effective.group.name'?: string | undefined; 'user.effective.hash'?: string | undefined; 'user.effective.id'?: string | undefined; 'user.effective.name'?: string | undefined; 'user.effective.roles'?: string[] | undefined; 'user.email'?: string | undefined; 'user.full_name'?: string | undefined; 'user.group.domain'?: string | undefined; 'user.group.id'?: string | undefined; 'user.group.name'?: string | undefined; 'user.hash'?: string | undefined; 'user.id'?: string | undefined; 'user.name'?: string | undefined; 'user.risk.calculated_level'?: string | undefined; 'user.risk.calculated_score'?: number | undefined; 'user.risk.calculated_score_norm'?: number | undefined; 'user.risk.static_level'?: string | undefined; 'user.risk.static_score'?: number | undefined; 'user.risk.static_score_norm'?: number | undefined; 'user.roles'?: string[] | undefined; 'user.target.domain'?: string | undefined; 'user.target.email'?: string | undefined; 'user.target.full_name'?: string | undefined; 'user.target.group.domain'?: string | undefined; 'user.target.group.id'?: string | undefined; 'user.target.group.name'?: string | undefined; 'user.target.hash'?: string | undefined; 'user.target.id'?: string | undefined; 'user.target.name'?: string | undefined; 'user.target.roles'?: string[] | undefined; 'user_agent.device.name'?: string | undefined; 'user_agent.name'?: string | undefined; 'user_agent.original'?: string | undefined; 'user_agent.os.family'?: string | undefined; 'user_agent.os.full'?: string | undefined; 'user_agent.os.kernel'?: string | undefined; 'user_agent.os.name'?: string | undefined; 'user_agent.os.platform'?: string | undefined; 'user_agent.os.type'?: string | undefined; 'user_agent.os.version'?: string | undefined; 'user_agent.version'?: string | undefined; 'vulnerability.category'?: string[] | undefined; 'vulnerability.classification'?: string | undefined; 'vulnerability.description'?: string | undefined; 'vulnerability.enumeration'?: string | undefined; 'vulnerability.id'?: string | undefined; 'vulnerability.reference'?: string | undefined; 'vulnerability.report_id'?: string | undefined; 'vulnerability.scanner.vendor'?: string | undefined; 'vulnerability.score.base'?: number | undefined; 'vulnerability.score.environmental'?: number | undefined; 'vulnerability.score.temporal'?: number | undefined; 'vulnerability.score.version'?: string | undefined; 'vulnerability.severity'?: string | undefined; } & {} & { 'ecs.version'?: string | undefined; 'kibana.alert.risk_score'?: number | undefined; 'kibana.alert.rule.author'?: string | undefined; 'kibana.alert.rule.created_at'?: string | number | undefined; 'kibana.alert.rule.created_by'?: string | undefined; 'kibana.alert.rule.description'?: string | undefined; 'kibana.alert.rule.enabled'?: string | undefined; 'kibana.alert.rule.from'?: string | undefined; 'kibana.alert.rule.interval'?: string | undefined; 'kibana.alert.rule.license'?: string | undefined; 'kibana.alert.rule.note'?: string | undefined; 'kibana.alert.rule.references'?: string[] | undefined; 'kibana.alert.rule.rule_id'?: string | undefined; 'kibana.alert.rule.rule_name_override'?: string | undefined; 'kibana.alert.rule.to'?: string | undefined; 'kibana.alert.rule.type'?: string | undefined; 'kibana.alert.rule.updated_at'?: string | number | undefined; 'kibana.alert.rule.updated_by'?: string | undefined; 'kibana.alert.rule.version'?: string | undefined; 'kibana.alert.severity'?: string | undefined; 'kibana.alert.suppression.docs_count'?: string | number | undefined; 'kibana.alert.suppression.end'?: string | number | undefined; 'kibana.alert.suppression.start'?: string | number | undefined; 'kibana.alert.suppression.terms.field'?: string[] | undefined; 'kibana.alert.suppression.terms.value'?: string[] | undefined; 'kibana.alert.system_status'?: string | undefined; 'kibana.alert.workflow_reason'?: string | undefined; 'kibana.alert.workflow_status_updated_at'?: string | number | undefined; 'kibana.alert.workflow_user'?: string | undefined; }) | ({} & { 'kibana.alert.context'?: unknown; 'kibana.alert.evaluation.threshold'?: string | number | undefined; 'kibana.alert.evaluation.value'?: string | number | undefined; 'kibana.alert.evaluation.values'?: (string | number)[] | undefined; 'kibana.alert.group'?: { field?: string | undefined; value?: string | undefined; }[] | undefined; } & { '@timestamp': string | number; 'kibana.alert.instance.id': string; 'kibana.alert.rule.category': string; 'kibana.alert.rule.consumer': string; 'kibana.alert.rule.name': string; 'kibana.alert.rule.producer': string; 'kibana.alert.rule.revision': string | number; 'kibana.alert.rule.rule_type_id': string; 'kibana.alert.rule.uuid': string; 'kibana.alert.status': string; 'kibana.alert.uuid': string; 'kibana.space_ids': string[]; } & { 'event.action'?: string | undefined; 'event.kind'?: string | undefined; 'kibana.alert.action_group'?: string | undefined; 'kibana.alert.case_ids'?: string[] | undefined; 'kibana.alert.duration.us'?: string | number | undefined; 'kibana.alert.end'?: string | number | undefined; 'kibana.alert.flapping'?: boolean | undefined; 'kibana.alert.flapping_history'?: boolean[] | undefined; 'kibana.alert.last_detected'?: string | number | undefined; 'kibana.alert.maintenance_window_ids'?: string[] | undefined; 'kibana.alert.reason'?: string | undefined; 'kibana.alert.rule.execution.uuid'?: string | undefined; 'kibana.alert.rule.parameters'?: unknown; 'kibana.alert.rule.tags'?: string[] | undefined; 'kibana.alert.start'?: string | number | undefined; 'kibana.alert.time_range'?: { gte?: string | number | undefined; lte?: string | number | undefined; } | undefined; 'kibana.alert.url'?: string | undefined; 'kibana.alert.workflow_assignee_ids'?: string[] | undefined; 'kibana.alert.workflow_status'?: string | undefined; 'kibana.alert.workflow_tags'?: string[] | undefined; 'kibana.version'?: string | undefined; tags?: string[] | undefined; } & { '@timestamp': string | number; 'ecs.version': string; } & { 'agent.build.original'?: string | undefined; 'agent.ephemeral_id'?: string | undefined; 'agent.id'?: string | undefined; 'agent.name'?: string | undefined; 'agent.type'?: string | undefined; 'agent.version'?: string | undefined; 'client.address'?: string | undefined; 'client.as.number'?: string | number | undefined; 'client.as.organization.name'?: string | undefined; 'client.bytes'?: string | number | undefined; 'client.domain'?: string | undefined; 'client.geo.city_name'?: string | undefined; 'client.geo.continent_code'?: string | undefined; 'client.geo.continent_name'?: string | undefined; 'client.geo.country_iso_code'?: string | undefined; 'client.geo.country_name'?: string | undefined; 'client.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'client.geo.name'?: string | undefined; 'client.geo.postal_code'?: string | undefined; 'client.geo.region_iso_code'?: string | undefined; 'client.geo.region_name'?: string | undefined; 'client.geo.timezone'?: string | undefined; 'client.ip'?: string | undefined; 'client.mac'?: string | undefined; 'client.nat.ip'?: string | undefined; 'client.nat.port'?: string | number | undefined; 'client.packets'?: string | number | undefined; 'client.port'?: string | number | undefined; 'client.registered_domain'?: string | undefined; 'client.subdomain'?: string | undefined; 'client.top_level_domain'?: string | undefined; 'client.user.domain'?: string | undefined; 'client.user.email'?: string | undefined; 'client.user.full_name'?: string | undefined; 'client.user.group.domain'?: string | undefined; 'client.user.group.id'?: string | undefined; 'client.user.group.name'?: string | undefined; 'client.user.hash'?: string | undefined; 'client.user.id'?: string | undefined; 'client.user.name'?: string | undefined; 'client.user.roles'?: string[] | undefined; 'cloud.account.id'?: string | undefined; 'cloud.account.name'?: string | undefined; 'cloud.availability_zone'?: string | undefined; 'cloud.instance.id'?: string | undefined; 'cloud.instance.name'?: string | undefined; 'cloud.machine.type'?: string | undefined; 'cloud.origin.account.id'?: string | undefined; 'cloud.origin.account.name'?: string | undefined; 'cloud.origin.availability_zone'?: string | undefined; 'cloud.origin.instance.id'?: string | undefined; 'cloud.origin.instance.name'?: string | undefined; 'cloud.origin.machine.type'?: string | undefined; 'cloud.origin.project.id'?: string | undefined; 'cloud.origin.project.name'?: string | undefined; 'cloud.origin.provider'?: string | undefined; 'cloud.origin.region'?: string | undefined; 'cloud.origin.service.name'?: string | undefined; 'cloud.project.id'?: string | undefined; 'cloud.project.name'?: string | undefined; 'cloud.provider'?: string | undefined; 'cloud.region'?: string | undefined; 'cloud.service.name'?: string | undefined; 'cloud.target.account.id'?: string | undefined; 'cloud.target.account.name'?: string | undefined; 'cloud.target.availability_zone'?: string | undefined; 'cloud.target.instance.id'?: string | undefined; 'cloud.target.instance.name'?: string | undefined; 'cloud.target.machine.type'?: string | undefined; 'cloud.target.project.id'?: string | undefined; 'cloud.target.project.name'?: string | undefined; 'cloud.target.provider'?: string | undefined; 'cloud.target.region'?: string | undefined; 'cloud.target.service.name'?: string | undefined; 'container.cpu.usage'?: string | number | undefined; 'container.disk.read.bytes'?: string | number | undefined; 'container.disk.write.bytes'?: string | number | undefined; 'container.id'?: string | undefined; 'container.image.hash.all'?: string[] | undefined; 'container.image.name'?: string | undefined; 'container.image.tag'?: string[] | undefined; 'container.labels'?: unknown; 'container.memory.usage'?: string | number | undefined; 'container.name'?: string | undefined; 'container.network.egress.bytes'?: string | number | undefined; 'container.network.ingress.bytes'?: string | number | undefined; 'container.runtime'?: string | undefined; 'destination.address'?: string | undefined; 'destination.as.number'?: string | number | undefined; 'destination.as.organization.name'?: string | undefined; 'destination.bytes'?: string | number | undefined; 'destination.domain'?: string | undefined; 'destination.geo.city_name'?: string | undefined; 'destination.geo.continent_code'?: string | undefined; 'destination.geo.continent_name'?: string | undefined; 'destination.geo.country_iso_code'?: string | undefined; 'destination.geo.country_name'?: string | undefined; 'destination.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'destination.geo.name'?: string | undefined; 'destination.geo.postal_code'?: string | undefined; 'destination.geo.region_iso_code'?: string | undefined; 'destination.geo.region_name'?: string | undefined; 'destination.geo.timezone'?: string | undefined; 'destination.ip'?: string | undefined; 'destination.mac'?: string | undefined; 'destination.nat.ip'?: string | undefined; 'destination.nat.port'?: string | number | undefined; 'destination.packets'?: string | number | undefined; 'destination.port'?: string | number | undefined; 'destination.registered_domain'?: string | undefined; 'destination.subdomain'?: string | undefined; 'destination.top_level_domain'?: string | undefined; 'destination.user.domain'?: string | undefined; 'destination.user.email'?: string | undefined; 'destination.user.full_name'?: string | undefined; 'destination.user.group.domain'?: string | undefined; 'destination.user.group.id'?: string | undefined; 'destination.user.group.name'?: string | undefined; 'destination.user.hash'?: string | undefined; 'destination.user.id'?: string | undefined; 'destination.user.name'?: string | undefined; 'destination.user.roles'?: string[] | undefined; 'device.id'?: string | undefined; 'device.manufacturer'?: string | undefined; 'device.model.identifier'?: string | undefined; 'device.model.name'?: string | undefined; 'dll.code_signature.digest_algorithm'?: string | undefined; 'dll.code_signature.exists'?: boolean | undefined; 'dll.code_signature.signing_id'?: string | undefined; 'dll.code_signature.status'?: string | undefined; 'dll.code_signature.subject_name'?: string | undefined; 'dll.code_signature.team_id'?: string | undefined; 'dll.code_signature.timestamp'?: string | number | undefined; 'dll.code_signature.trusted'?: boolean | undefined; 'dll.code_signature.valid'?: boolean | undefined; 'dll.hash.md5'?: string | undefined; 'dll.hash.sha1'?: string | undefined; 'dll.hash.sha256'?: string | undefined; 'dll.hash.sha384'?: string | undefined; 'dll.hash.sha512'?: string | undefined; 'dll.hash.ssdeep'?: string | undefined; 'dll.hash.tlsh'?: string | undefined; 'dll.name'?: string | undefined; 'dll.path'?: string | undefined; 'dll.pe.architecture'?: string | undefined; 'dll.pe.company'?: string | undefined; 'dll.pe.description'?: string | undefined; 'dll.pe.file_version'?: string | undefined; 'dll.pe.imphash'?: string | undefined; 'dll.pe.original_file_name'?: string | undefined; 'dll.pe.pehash'?: string | undefined; 'dll.pe.product'?: string | undefined; 'dns.answers'?: { class?: string | undefined; data?: string | undefined; name?: string | undefined; ttl?: string | number | undefined; type?: string | undefined; }[] | undefined; 'dns.header_flags'?: string[] | undefined; 'dns.id'?: string | undefined; 'dns.op_code'?: string | undefined; 'dns.question.class'?: string | undefined; 'dns.question.name'?: string | undefined; 'dns.question.registered_domain'?: string | undefined; 'dns.question.subdomain'?: string | undefined; 'dns.question.top_level_domain'?: string | undefined; 'dns.question.type'?: string | undefined; 'dns.resolved_ip'?: string[] | undefined; 'dns.response_code'?: string | undefined; 'dns.type'?: string | undefined; 'email.attachments'?: { 'file.extension'?: string | undefined; 'file.hash.md5'?: string | undefined; 'file.hash.sha1'?: string | undefined; 'file.hash.sha256'?: string | undefined; 'file.hash.sha384'?: string | undefined; 'file.hash.sha512'?: string | undefined; 'file.hash.ssdeep'?: string | undefined; 'file.hash.tlsh'?: string | undefined; 'file.mime_type'?: string | undefined; 'file.name'?: string | undefined; 'file.size'?: string | number | undefined; }[] | undefined; 'email.bcc.address'?: string[] | undefined; 'email.cc.address'?: string[] | undefined; 'email.content_type'?: string | undefined; 'email.delivery_timestamp'?: string | number | undefined; 'email.direction'?: string | undefined; 'email.from.address'?: string[] | undefined; 'email.local_id'?: string | undefined; 'email.message_id'?: string | undefined; 'email.origination_timestamp'?: string | number | undefined; 'email.reply_to.address'?: string[] | undefined; 'email.sender.address'?: string | undefined; 'email.subject'?: string | undefined; 'email.to.address'?: string[] | undefined; 'email.x_mailer'?: string | undefined; 'error.code'?: string | undefined; 'error.id'?: string | undefined; 'error.message'?: string | undefined; 'error.stack_trace'?: string | undefined; 'error.type'?: string | undefined; 'event.action'?: string | undefined; 'event.agent_id_status'?: string | undefined; 'event.category'?: string[] | undefined; 'event.code'?: string | undefined; 'event.created'?: string | number | undefined; 'event.dataset'?: string | undefined; 'event.duration'?: string | number | undefined; 'event.end'?: string | number | undefined; 'event.hash'?: string | undefined; 'event.id'?: string | undefined; 'event.ingested'?: string | number | undefined; 'event.kind'?: string | undefined; 'event.module'?: string | undefined; 'event.original'?: string | undefined; 'event.outcome'?: string | undefined; 'event.provider'?: string | undefined; 'event.reason'?: string | undefined; 'event.reference'?: string | undefined; 'event.risk_score'?: number | undefined; 'event.risk_score_norm'?: number | undefined; 'event.sequence'?: string | number | undefined; 'event.severity'?: string | number | undefined; 'event.start'?: string | number | undefined; 'event.timezone'?: string | undefined; 'event.type'?: string[] | undefined; 'event.url'?: string | undefined; 'faas.coldstart'?: boolean | undefined; 'faas.execution'?: string | undefined; 'faas.id'?: string | undefined; 'faas.name'?: string | undefined; 'faas.version'?: string | undefined; 'file.accessed'?: string | number | undefined; 'file.attributes'?: string[] | undefined; 'file.code_signature.digest_algorithm'?: string | undefined; 'file.code_signature.exists'?: boolean | undefined; 'file.code_signature.signing_id'?: string | undefined; 'file.code_signature.status'?: string | undefined; 'file.code_signature.subject_name'?: string | undefined; 'file.code_signature.team_id'?: string | undefined; 'file.code_signature.timestamp'?: string | number | undefined; 'file.code_signature.trusted'?: boolean | undefined; 'file.code_signature.valid'?: boolean | undefined; 'file.created'?: string | number | undefined; 'file.ctime'?: string | number | undefined; 'file.device'?: string | undefined; 'file.directory'?: string | undefined; 'file.drive_letter'?: string | undefined; 'file.elf.architecture'?: string | undefined; 'file.elf.byte_order'?: string | undefined; 'file.elf.cpu_type'?: string | undefined; 'file.elf.creation_date'?: string | number | undefined; 'file.elf.exports'?: unknown[] | undefined; 'file.elf.header.abi_version'?: string | undefined; 'file.elf.header.class'?: string | undefined; 'file.elf.header.data'?: string | undefined; 'file.elf.header.entrypoint'?: string | number | undefined; 'file.elf.header.object_version'?: string | undefined; 'file.elf.header.os_abi'?: string | undefined; 'file.elf.header.type'?: string | undefined; 'file.elf.header.version'?: string | undefined; 'file.elf.imports'?: unknown[] | undefined; 'file.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'file.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'file.elf.shared_libraries'?: string[] | undefined; 'file.elf.telfhash'?: string | undefined; 'file.extension'?: string | undefined; 'file.fork_name'?: string | undefined; 'file.gid'?: string | undefined; 'file.group'?: string | undefined; 'file.hash.md5'?: string | undefined; 'file.hash.sha1'?: string | undefined; 'file.hash.sha256'?: string | undefined; 'file.hash.sha384'?: string | undefined; 'file.hash.sha512'?: string | undefined; 'file.hash.ssdeep'?: string | undefined; 'file.hash.tlsh'?: string | undefined; 'file.inode'?: string | undefined; 'file.mime_type'?: string | undefined; 'file.mode'?: string | undefined; 'file.mtime'?: string | number | undefined; 'file.name'?: string | undefined; 'file.owner'?: string | undefined; 'file.path'?: string | undefined; 'file.pe.architecture'?: string | undefined; 'file.pe.company'?: string | undefined; 'file.pe.description'?: string | undefined; 'file.pe.file_version'?: string | undefined; 'file.pe.imphash'?: string | undefined; 'file.pe.original_file_name'?: string | undefined; 'file.pe.pehash'?: string | undefined; 'file.pe.product'?: string | undefined; 'file.size'?: string | number | undefined; 'file.target_path'?: string | undefined; 'file.type'?: string | undefined; 'file.uid'?: string | undefined; 'file.x509.alternative_names'?: string[] | undefined; 'file.x509.issuer.common_name'?: string[] | undefined; 'file.x509.issuer.country'?: string[] | undefined; 'file.x509.issuer.distinguished_name'?: string | undefined; 'file.x509.issuer.locality'?: string[] | undefined; 'file.x509.issuer.organization'?: string[] | undefined; 'file.x509.issuer.organizational_unit'?: string[] | undefined; 'file.x509.issuer.state_or_province'?: string[] | undefined; 'file.x509.not_after'?: string | number | undefined; 'file.x509.not_before'?: string | number | undefined; 'file.x509.public_key_algorithm'?: string | undefined; 'file.x509.public_key_curve'?: string | undefined; 'file.x509.public_key_exponent'?: string | number | undefined; 'file.x509.public_key_size'?: string | number | undefined; 'file.x509.serial_number'?: string | undefined; 'file.x509.signature_algorithm'?: string | undefined; 'file.x509.subject.common_name'?: string[] | undefined; 'file.x509.subject.country'?: string[] | undefined; 'file.x509.subject.distinguished_name'?: string | undefined; 'file.x509.subject.locality'?: string[] | undefined; 'file.x509.subject.organization'?: string[] | undefined; 'file.x509.subject.organizational_unit'?: string[] | undefined; 'file.x509.subject.state_or_province'?: string[] | undefined; 'file.x509.version_number'?: string | undefined; 'group.domain'?: string | undefined; 'group.id'?: string | undefined; 'group.name'?: string | undefined; 'host.architecture'?: string | undefined; 'host.boot.id'?: string | undefined; 'host.cpu.usage'?: string | number | undefined; 'host.disk.read.bytes'?: string | number | undefined; 'host.disk.write.bytes'?: string | number | undefined; 'host.domain'?: string | undefined; 'host.geo.city_name'?: string | undefined; 'host.geo.continent_code'?: string | undefined; 'host.geo.continent_name'?: string | undefined; 'host.geo.country_iso_code'?: string | undefined; 'host.geo.country_name'?: string | undefined; 'host.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'host.geo.name'?: string | undefined; 'host.geo.postal_code'?: string | undefined; 'host.geo.region_iso_code'?: string | undefined; 'host.geo.region_name'?: string | undefined; 'host.geo.timezone'?: string | undefined; 'host.hostname'?: string | undefined; 'host.id'?: string | undefined; 'host.ip'?: string[] | undefined; 'host.mac'?: string[] | undefined; 'host.name'?: string | undefined; 'host.network.egress.bytes'?: string | number | undefined; 'host.network.egress.packets'?: string | number | undefined; 'host.network.ingress.bytes'?: string | number | undefined; 'host.network.ingress.packets'?: string | number | undefined; 'host.os.family'?: string | undefined; 'host.os.full'?: string | undefined; 'host.os.kernel'?: string | undefined; 'host.os.name'?: string | undefined; 'host.os.platform'?: string | undefined; 'host.os.type'?: string | undefined; 'host.os.version'?: string | undefined; 'host.pid_ns_ino'?: string | undefined; 'host.risk.calculated_level'?: string | undefined; 'host.risk.calculated_score'?: number | undefined; 'host.risk.calculated_score_norm'?: number | undefined; 'host.risk.static_level'?: string | undefined; 'host.risk.static_score'?: number | undefined; 'host.risk.static_score_norm'?: number | undefined; 'host.type'?: string | undefined; 'host.uptime'?: string | number | undefined; 'http.request.body.bytes'?: string | number | undefined; 'http.request.body.content'?: string | undefined; 'http.request.bytes'?: string | number | undefined; 'http.request.id'?: string | undefined; 'http.request.method'?: string | undefined; 'http.request.mime_type'?: string | undefined; 'http.request.referrer'?: string | undefined; 'http.response.body.bytes'?: string | number | undefined; 'http.response.body.content'?: string | undefined; 'http.response.bytes'?: string | number | undefined; 'http.response.mime_type'?: string | undefined; 'http.response.status_code'?: string | number | undefined; 'http.version'?: string | undefined; labels?: unknown; 'log.file.path'?: string | undefined; 'log.level'?: string | undefined; 'log.logger'?: string | undefined; 'log.origin.file.line'?: string | number | undefined; 'log.origin.file.name'?: string | undefined; 'log.origin.function'?: string | undefined; 'log.syslog'?: unknown; message?: string | undefined; 'network.application'?: string | undefined; 'network.bytes'?: string | number | undefined; 'network.community_id'?: string | undefined; 'network.direction'?: string | undefined; 'network.forwarded_ip'?: string | undefined; 'network.iana_number'?: string | undefined; 'network.inner'?: unknown; 'network.name'?: string | undefined; 'network.packets'?: string | number | undefined; 'network.protocol'?: string | undefined; 'network.transport'?: string | undefined; 'network.type'?: string | undefined; 'network.vlan.id'?: string | undefined; 'network.vlan.name'?: string | undefined; 'observer.egress'?: unknown; 'observer.geo.city_name'?: string | undefined; 'observer.geo.continent_code'?: string | undefined; 'observer.geo.continent_name'?: string | undefined; 'observer.geo.country_iso_code'?: string | undefined; 'observer.geo.country_name'?: string | undefined; 'observer.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'observer.geo.name'?: string | undefined; 'observer.geo.postal_code'?: string | undefined; 'observer.geo.region_iso_code'?: string | undefined; 'observer.geo.region_name'?: string | undefined; 'observer.geo.timezone'?: string | undefined; 'observer.hostname'?: string | undefined; 'observer.ingress'?: unknown; 'observer.ip'?: string[] | undefined; 'observer.mac'?: string[] | undefined; 'observer.name'?: string | undefined; 'observer.os.family'?: string | undefined; 'observer.os.full'?: string | undefined; 'observer.os.kernel'?: string | undefined; 'observer.os.name'?: string | undefined; 'observer.os.platform'?: string | undefined; 'observer.os.type'?: string | undefined; 'observer.os.version'?: string | undefined; 'observer.product'?: string | undefined; 'observer.serial_number'?: string | undefined; 'observer.type'?: string | undefined; 'observer.vendor'?: string | undefined; 'observer.version'?: string | undefined; 'orchestrator.api_version'?: string | undefined; 'orchestrator.cluster.id'?: string | undefined; 'orchestrator.cluster.name'?: string | undefined; 'orchestrator.cluster.url'?: string | undefined; 'orchestrator.cluster.version'?: string | undefined; 'orchestrator.namespace'?: string | undefined; 'orchestrator.organization'?: string | undefined; 'orchestrator.resource.id'?: string | undefined; 'orchestrator.resource.ip'?: string[] | undefined; 'orchestrator.resource.name'?: string | undefined; 'orchestrator.resource.parent.type'?: string | undefined; 'orchestrator.resource.type'?: string | undefined; 'orchestrator.type'?: string | undefined; 'organization.id'?: string | undefined; 'organization.name'?: string | undefined; 'package.architecture'?: string | undefined; 'package.build_version'?: string | undefined; 'package.checksum'?: string | undefined; 'package.description'?: string | undefined; 'package.install_scope'?: string | undefined; 'package.installed'?: string | number | undefined; 'package.license'?: string | undefined; 'package.name'?: string | undefined; 'package.path'?: string | undefined; 'package.reference'?: string | undefined; 'package.size'?: string | number | undefined; 'package.type'?: string | undefined; 'package.version'?: string | undefined; 'process.args'?: string[] | undefined; 'process.args_count'?: string | number | undefined; 'process.code_signature.digest_algorithm'?: string | undefined; 'process.code_signature.exists'?: boolean | undefined; 'process.code_signature.signing_id'?: string | undefined; 'process.code_signature.status'?: string | undefined; 'process.code_signature.subject_name'?: string | undefined; 'process.code_signature.team_id'?: string | undefined; 'process.code_signature.timestamp'?: string | number | undefined; 'process.code_signature.trusted'?: boolean | undefined; 'process.code_signature.valid'?: boolean | undefined; 'process.command_line'?: string | undefined; 'process.elf.architecture'?: string | undefined; 'process.elf.byte_order'?: string | undefined; 'process.elf.cpu_type'?: string | undefined; 'process.elf.creation_date'?: string | number | undefined; 'process.elf.exports'?: unknown[] | undefined; 'process.elf.header.abi_version'?: string | undefined; 'process.elf.header.class'?: string | undefined; 'process.elf.header.data'?: string | undefined; 'process.elf.header.entrypoint'?: string | number | undefined; 'process.elf.header.object_version'?: string | undefined; 'process.elf.header.os_abi'?: string | undefined; 'process.elf.header.type'?: string | undefined; 'process.elf.header.version'?: string | undefined; 'process.elf.imports'?: unknown[] | undefined; 'process.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'process.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'process.elf.shared_libraries'?: string[] | undefined; 'process.elf.telfhash'?: string | undefined; 'process.end'?: string | number | undefined; 'process.entity_id'?: string | undefined; 'process.entry_leader.args'?: string[] | undefined; 'process.entry_leader.args_count'?: string | number | undefined; 'process.entry_leader.attested_groups.name'?: string | undefined; 'process.entry_leader.attested_user.id'?: string | undefined; 'process.entry_leader.attested_user.name'?: string | undefined; 'process.entry_leader.command_line'?: string | undefined; 'process.entry_leader.entity_id'?: string | undefined; 'process.entry_leader.entry_meta.source.ip'?: string | undefined; 'process.entry_leader.entry_meta.type'?: string | undefined; 'process.entry_leader.executable'?: string | undefined; 'process.entry_leader.group.id'?: string | undefined; 'process.entry_leader.group.name'?: string | undefined; 'process.entry_leader.interactive'?: boolean | undefined; 'process.entry_leader.name'?: string | undefined; 'process.entry_leader.parent.entity_id'?: string | undefined; 'process.entry_leader.parent.pid'?: string | number | undefined; 'process.entry_leader.parent.session_leader.entity_id'?: string | undefined; 'process.entry_leader.parent.session_leader.pid'?: string | number | undefined; 'process.entry_leader.parent.session_leader.start'?: string | number | undefined; 'process.entry_leader.parent.start'?: string | number | undefined; 'process.entry_leader.pid'?: string | number | undefined; 'process.entry_leader.real_group.id'?: string | undefined; 'process.entry_leader.real_group.name'?: string | undefined; 'process.entry_leader.real_user.id'?: string | undefined; 'process.entry_leader.real_user.name'?: string | undefined; 'process.entry_leader.same_as_process'?: boolean | undefined; 'process.entry_leader.saved_group.id'?: string | undefined; 'process.entry_leader.saved_group.name'?: string | undefined; 'process.entry_leader.saved_user.id'?: string | undefined; 'process.entry_leader.saved_user.name'?: string | undefined; 'process.entry_leader.start'?: string | number | undefined; 'process.entry_leader.supplemental_groups.id'?: string | undefined; 'process.entry_leader.supplemental_groups.name'?: string | undefined; 'process.entry_leader.tty'?: unknown; 'process.entry_leader.user.id'?: string | undefined; 'process.entry_leader.user.name'?: string | undefined; 'process.entry_leader.working_directory'?: string | undefined; 'process.env_vars'?: string[] | undefined; 'process.executable'?: string | undefined; 'process.exit_code'?: string | number | undefined; 'process.group_leader.args'?: string[] | undefined; 'process.group_leader.args_count'?: string | number | undefined; 'process.group_leader.command_line'?: string | undefined; 'process.group_leader.entity_id'?: string | undefined; 'process.group_leader.executable'?: string | undefined; 'process.group_leader.group.id'?: string | undefined; 'process.group_leader.group.name'?: string | undefined; 'process.group_leader.interactive'?: boolean | undefined; 'process.group_leader.name'?: string | undefined; 'process.group_leader.pid'?: string | number | undefined; 'process.group_leader.real_group.id'?: string | undefined; 'process.group_leader.real_group.name'?: string | undefined; 'process.group_leader.real_user.id'?: string | undefined; 'process.group_leader.real_user.name'?: string | undefined; 'process.group_leader.same_as_process'?: boolean | undefined; 'process.group_leader.saved_group.id'?: string | undefined; 'process.group_leader.saved_group.name'?: string | undefined; 'process.group_leader.saved_user.id'?: string | undefined; 'process.group_leader.saved_user.name'?: string | undefined; 'process.group_leader.start'?: string | number | undefined; 'process.group_leader.supplemental_groups.id'?: string | undefined; 'process.group_leader.supplemental_groups.name'?: string | undefined; 'process.group_leader.tty'?: unknown; 'process.group_leader.user.id'?: string | undefined; 'process.group_leader.user.name'?: string | undefined; 'process.group_leader.working_directory'?: string | undefined; 'process.hash.md5'?: string | undefined; 'process.hash.sha1'?: string | undefined; 'process.hash.sha256'?: string | undefined; 'process.hash.sha384'?: string | undefined; 'process.hash.sha512'?: string | undefined; 'process.hash.ssdeep'?: string | undefined; 'process.hash.tlsh'?: string | undefined; 'process.interactive'?: boolean | undefined; 'process.io'?: unknown; 'process.name'?: string | undefined; 'process.parent.args'?: string[] | undefined; 'process.parent.args_count'?: string | number | undefined; 'process.parent.code_signature.digest_algorithm'?: string | undefined; 'process.parent.code_signature.exists'?: boolean | undefined; 'process.parent.code_signature.signing_id'?: string | undefined; 'process.parent.code_signature.status'?: string | undefined; 'process.parent.code_signature.subject_name'?: string | undefined; 'process.parent.code_signature.team_id'?: string | undefined; 'process.parent.code_signature.timestamp'?: string | number | undefined; 'process.parent.code_signature.trusted'?: boolean | undefined; 'process.parent.code_signature.valid'?: boolean | undefined; 'process.parent.command_line'?: string | undefined; 'process.parent.elf.architecture'?: string | undefined; 'process.parent.elf.byte_order'?: string | undefined; 'process.parent.elf.cpu_type'?: string | undefined; 'process.parent.elf.creation_date'?: string | number | undefined; 'process.parent.elf.exports'?: unknown[] | undefined; 'process.parent.elf.header.abi_version'?: string | undefined; 'process.parent.elf.header.class'?: string | undefined; 'process.parent.elf.header.data'?: string | undefined; 'process.parent.elf.header.entrypoint'?: string | number | undefined; 'process.parent.elf.header.object_version'?: string | undefined; 'process.parent.elf.header.os_abi'?: string | undefined; 'process.parent.elf.header.type'?: string | undefined; 'process.parent.elf.header.version'?: string | undefined; 'process.parent.elf.imports'?: unknown[] | undefined; 'process.parent.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'process.parent.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'process.parent.elf.shared_libraries'?: string[] | undefined; 'process.parent.elf.telfhash'?: string | undefined; 'process.parent.end'?: string | number | undefined; 'process.parent.entity_id'?: string | undefined; 'process.parent.executable'?: string | undefined; 'process.parent.exit_code'?: string | number | undefined; 'process.parent.group.id'?: string | undefined; 'process.parent.group.name'?: string | undefined; 'process.parent.group_leader.entity_id'?: string | undefined; 'process.parent.group_leader.pid'?: string | number | undefined; 'process.parent.group_leader.start'?: string | number | undefined; 'process.parent.hash.md5'?: string | undefined; 'process.parent.hash.sha1'?: string | undefined; 'process.parent.hash.sha256'?: string | undefined; 'process.parent.hash.sha384'?: string | undefined; 'process.parent.hash.sha512'?: string | undefined; 'process.parent.hash.ssdeep'?: string | undefined; 'process.parent.hash.tlsh'?: string | undefined; 'process.parent.interactive'?: boolean | undefined; 'process.parent.name'?: string | undefined; 'process.parent.pe.architecture'?: string | undefined; 'process.parent.pe.company'?: string | undefined; 'process.parent.pe.description'?: string | undefined; 'process.parent.pe.file_version'?: string | undefined; 'process.parent.pe.imphash'?: string | undefined; 'process.parent.pe.original_file_name'?: string | undefined; 'process.parent.pe.pehash'?: string | undefined; 'process.parent.pe.product'?: string | undefined; 'process.parent.pgid'?: string | number | undefined; 'process.parent.pid'?: string | number | undefined; 'process.parent.real_group.id'?: string | undefined; 'process.parent.real_group.name'?: string | undefined; 'process.parent.real_user.id'?: string | undefined; 'process.parent.real_user.name'?: string | undefined; 'process.parent.saved_group.id'?: string | undefined; 'process.parent.saved_group.name'?: string | undefined; 'process.parent.saved_user.id'?: string | undefined; 'process.parent.saved_user.name'?: string | undefined; 'process.parent.start'?: string | number | undefined; 'process.parent.supplemental_groups.id'?: string | undefined; 'process.parent.supplemental_groups.name'?: string | undefined; 'process.parent.thread.id'?: string | number | undefined; 'process.parent.thread.name'?: string | undefined; 'process.parent.title'?: string | undefined; 'process.parent.tty'?: unknown; 'process.parent.uptime'?: string | number | undefined; 'process.parent.user.id'?: string | undefined; 'process.parent.user.name'?: string | undefined; 'process.parent.working_directory'?: string | undefined; 'process.pe.architecture'?: string | undefined; 'process.pe.company'?: string | undefined; 'process.pe.description'?: string | undefined; 'process.pe.file_version'?: string | undefined; 'process.pe.imphash'?: string | undefined; 'process.pe.original_file_name'?: string | undefined; 'process.pe.pehash'?: string | undefined; 'process.pe.product'?: string | undefined; 'process.pgid'?: string | number | undefined; 'process.pid'?: string | number | undefined; 'process.previous.args'?: string[] | undefined; 'process.previous.args_count'?: string | number | undefined; 'process.previous.executable'?: string | undefined; 'process.real_group.id'?: string | undefined; 'process.real_group.name'?: string | undefined; 'process.real_user.id'?: string | undefined; 'process.real_user.name'?: string | undefined; 'process.saved_group.id'?: string | undefined; 'process.saved_group.name'?: string | undefined; 'process.saved_user.id'?: string | undefined; 'process.saved_user.name'?: string | undefined; 'process.session_leader.args'?: string[] | undefined; 'process.session_leader.args_count'?: string | number | undefined; 'process.session_leader.command_line'?: string | undefined; 'process.session_leader.entity_id'?: string | undefined; 'process.session_leader.executable'?: string | undefined; 'process.session_leader.group.id'?: string | undefined; 'process.session_leader.group.name'?: string | undefined; 'process.session_leader.interactive'?: boolean | undefined; 'process.session_leader.name'?: string | undefined; 'process.session_leader.parent.entity_id'?: string | undefined; 'process.session_leader.parent.pid'?: string | number | undefined; 'process.session_leader.parent.session_leader.entity_id'?: string | undefined; 'process.session_leader.parent.session_leader.pid'?: string | number | undefined; 'process.session_leader.parent.session_leader.start'?: string | number | undefined; 'process.session_leader.parent.start'?: string | number | undefined; 'process.session_leader.pid'?: string | number | undefined; 'process.session_leader.real_group.id'?: string | undefined; 'process.session_leader.real_group.name'?: string | undefined; 'process.session_leader.real_user.id'?: string | undefined; 'process.session_leader.real_user.name'?: string | undefined; 'process.session_leader.same_as_process'?: boolean | undefined; 'process.session_leader.saved_group.id'?: string | undefined; 'process.session_leader.saved_group.name'?: string | undefined; 'process.session_leader.saved_user.id'?: string | undefined; 'process.session_leader.saved_user.name'?: string | undefined; 'process.session_leader.start'?: string | number | undefined; 'process.session_leader.supplemental_groups.id'?: string | undefined; 'process.session_leader.supplemental_groups.name'?: string | undefined; 'process.session_leader.tty'?: unknown; 'process.session_leader.user.id'?: string | undefined; 'process.session_leader.user.name'?: string | undefined; 'process.session_leader.working_directory'?: string | undefined; 'process.start'?: string | number | undefined; 'process.supplemental_groups.id'?: string | undefined; 'process.supplemental_groups.name'?: string | undefined; 'process.thread.id'?: string | number | undefined; 'process.thread.name'?: string | undefined; 'process.title'?: string | undefined; 'process.tty'?: unknown; 'process.uptime'?: string | number | undefined; 'process.user.id'?: string | undefined; 'process.user.name'?: string | undefined; 'process.working_directory'?: string | undefined; 'registry.data.bytes'?: string | undefined; 'registry.data.strings'?: string[] | undefined; 'registry.data.type'?: string | undefined; 'registry.hive'?: string | undefined; 'registry.key'?: string | undefined; 'registry.path'?: string | undefined; 'registry.value'?: string | undefined; 'related.hash'?: string[] | undefined; 'related.hosts'?: string[] | undefined; 'related.ip'?: string[] | undefined; 'related.user'?: string[] | undefined; 'rule.author'?: string[] | undefined; 'rule.category'?: string | undefined; 'rule.description'?: string | undefined; 'rule.id'?: string | undefined; 'rule.license'?: string | undefined; 'rule.name'?: string | undefined; 'rule.reference'?: string | undefined; 'rule.ruleset'?: string | undefined; 'rule.uuid'?: string | undefined; 'rule.version'?: string | undefined; 'server.address'?: string | undefined; 'server.as.number'?: string | number | undefined; 'server.as.organization.name'?: string | undefined; 'server.bytes'?: string | number | undefined; 'server.domain'?: string | undefined; 'server.geo.city_name'?: string | undefined; 'server.geo.continent_code'?: string | undefined; 'server.geo.continent_name'?: string | undefined; 'server.geo.country_iso_code'?: string | undefined; 'server.geo.country_name'?: string | undefined; 'server.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'server.geo.name'?: string | undefined; 'server.geo.postal_code'?: string | undefined; 'server.geo.region_iso_code'?: string | undefined; 'server.geo.region_name'?: string | undefined; 'server.geo.timezone'?: string | undefined; 'server.ip'?: string | undefined; 'server.mac'?: string | undefined; 'server.nat.ip'?: string | undefined; 'server.nat.port'?: string | number | undefined; 'server.packets'?: string | number | undefined; 'server.port'?: string | number | undefined; 'server.registered_domain'?: string | undefined; 'server.subdomain'?: string | undefined; 'server.top_level_domain'?: string | undefined; 'server.user.domain'?: string | undefined; 'server.user.email'?: string | undefined; 'server.user.full_name'?: string | undefined; 'server.user.group.domain'?: string | undefined; 'server.user.group.id'?: string | undefined; 'server.user.group.name'?: string | undefined; 'server.user.hash'?: string | undefined; 'server.user.id'?: string | undefined; 'server.user.name'?: string | undefined; 'server.user.roles'?: string[] | undefined; 'service.address'?: string | undefined; 'service.environment'?: string | undefined; 'service.ephemeral_id'?: string | undefined; 'service.id'?: string | undefined; 'service.name'?: string | undefined; 'service.node.name'?: string | undefined; 'service.node.role'?: string | undefined; 'service.node.roles'?: string[] | undefined; 'service.origin.address'?: string | undefined; 'service.origin.environment'?: string | undefined; 'service.origin.ephemeral_id'?: string | undefined; 'service.origin.id'?: string | undefined; 'service.origin.name'?: string | undefined; 'service.origin.node.name'?: string | undefined; 'service.origin.node.role'?: string | undefined; 'service.origin.node.roles'?: string[] | undefined; 'service.origin.state'?: string | undefined; 'service.origin.type'?: string | undefined; 'service.origin.version'?: string | undefined; 'service.state'?: string | undefined; 'service.target.address'?: string | undefined; 'service.target.environment'?: string | undefined; 'service.target.ephemeral_id'?: string | undefined; 'service.target.id'?: string | undefined; 'service.target.name'?: string | undefined; 'service.target.node.name'?: string | undefined; 'service.target.node.role'?: string | undefined; 'service.target.node.roles'?: string[] | undefined; 'service.target.state'?: string | undefined; 'service.target.type'?: string | undefined; 'service.target.version'?: string | undefined; 'service.type'?: string | undefined; 'service.version'?: string | undefined; 'source.address'?: string | undefined; 'source.as.number'?: string | number | undefined; 'source.as.organization.name'?: string | undefined; 'source.bytes'?: string | number | undefined; 'source.domain'?: string | undefined; 'source.geo.city_name'?: string | undefined; 'source.geo.continent_code'?: string | undefined; 'source.geo.continent_name'?: string | undefined; 'source.geo.country_iso_code'?: string | undefined; 'source.geo.country_name'?: string | undefined; 'source.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'source.geo.name'?: string | undefined; 'source.geo.postal_code'?: string | undefined; 'source.geo.region_iso_code'?: string | undefined; 'source.geo.region_name'?: string | undefined; 'source.geo.timezone'?: string | undefined; 'source.ip'?: string | undefined; 'source.mac'?: string | undefined; 'source.nat.ip'?: string | undefined; 'source.nat.port'?: string | number | undefined; 'source.packets'?: string | number | undefined; 'source.port'?: string | number | undefined; 'source.registered_domain'?: string | undefined; 'source.subdomain'?: string | undefined; 'source.top_level_domain'?: string | undefined; 'source.user.domain'?: string | undefined; 'source.user.email'?: string | undefined; 'source.user.full_name'?: string | undefined; 'source.user.group.domain'?: string | undefined; 'source.user.group.id'?: string | undefined; 'source.user.group.name'?: string | undefined; 'source.user.hash'?: string | undefined; 'source.user.id'?: string | undefined; 'source.user.name'?: string | undefined; 'source.user.roles'?: string[] | undefined; 'span.id'?: string | undefined; tags?: string[] | undefined; 'threat.enrichments'?: { indicator?: unknown; 'matched.atomic'?: string | undefined; 'matched.field'?: string | undefined; 'matched.id'?: string | undefined; 'matched.index'?: string | undefined; 'matched.occurred'?: string | number | undefined; 'matched.type'?: string | undefined; }[] | undefined; 'threat.feed.dashboard_id'?: string | undefined; 'threat.feed.description'?: string | undefined; 'threat.feed.name'?: string | undefined; 'threat.feed.reference'?: string | undefined; 'threat.framework'?: string | undefined; 'threat.group.alias'?: string[] | undefined; 'threat.group.id'?: string | undefined; 'threat.group.name'?: string | undefined; 'threat.group.reference'?: string | undefined; 'threat.indicator.as.number'?: string | number | undefined; 'threat.indicator.as.organization.name'?: string | undefined; 'threat.indicator.confidence'?: string | undefined; 'threat.indicator.description'?: string | undefined; 'threat.indicator.email.address'?: string | undefined; 'threat.indicator.file.accessed'?: string | number | undefined; 'threat.indicator.file.attributes'?: string[] | undefined; 'threat.indicator.file.code_signature.digest_algorithm'?: string | undefined; 'threat.indicator.file.code_signature.exists'?: boolean | undefined; 'threat.indicator.file.code_signature.signing_id'?: string | undefined; 'threat.indicator.file.code_signature.status'?: string | undefined; 'threat.indicator.file.code_signature.subject_name'?: string | undefined; 'threat.indicator.file.code_signature.team_id'?: string | undefined; 'threat.indicator.file.code_signature.timestamp'?: string | number | undefined; 'threat.indicator.file.code_signature.trusted'?: boolean | undefined; 'threat.indicator.file.code_signature.valid'?: boolean | undefined; 'threat.indicator.file.created'?: string | number | undefined; 'threat.indicator.file.ctime'?: string | number | undefined; 'threat.indicator.file.device'?: string | undefined; 'threat.indicator.file.directory'?: string | undefined; 'threat.indicator.file.drive_letter'?: string | undefined; 'threat.indicator.file.elf.architecture'?: string | undefined; 'threat.indicator.file.elf.byte_order'?: string | undefined; 'threat.indicator.file.elf.cpu_type'?: string | undefined; 'threat.indicator.file.elf.creation_date'?: string | number | undefined; 'threat.indicator.file.elf.exports'?: unknown[] | undefined; 'threat.indicator.file.elf.header.abi_version'?: string | undefined; 'threat.indicator.file.elf.header.class'?: string | undefined; 'threat.indicator.file.elf.header.data'?: string | undefined; 'threat.indicator.file.elf.header.entrypoint'?: string | number | undefined; 'threat.indicator.file.elf.header.object_version'?: string | undefined; 'threat.indicator.file.elf.header.os_abi'?: string | undefined; 'threat.indicator.file.elf.header.type'?: string | undefined; 'threat.indicator.file.elf.header.version'?: string | undefined; 'threat.indicator.file.elf.imports'?: unknown[] | undefined; 'threat.indicator.file.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'threat.indicator.file.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'threat.indicator.file.elf.shared_libraries'?: string[] | undefined; 'threat.indicator.file.elf.telfhash'?: string | undefined; 'threat.indicator.file.extension'?: string | undefined; 'threat.indicator.file.fork_name'?: string | undefined; 'threat.indicator.file.gid'?: string | undefined; 'threat.indicator.file.group'?: string | undefined; 'threat.indicator.file.hash.md5'?: string | undefined; 'threat.indicator.file.hash.sha1'?: string | undefined; 'threat.indicator.file.hash.sha256'?: string | undefined; 'threat.indicator.file.hash.sha384'?: string | undefined; 'threat.indicator.file.hash.sha512'?: string | undefined; 'threat.indicator.file.hash.ssdeep'?: string | undefined; 'threat.indicator.file.hash.tlsh'?: string | undefined; 'threat.indicator.file.inode'?: string | undefined; 'threat.indicator.file.mime_type'?: string | undefined; 'threat.indicator.file.mode'?: string | undefined; 'threat.indicator.file.mtime'?: string | number | undefined; 'threat.indicator.file.name'?: string | undefined; 'threat.indicator.file.owner'?: string | undefined; 'threat.indicator.file.path'?: string | undefined; 'threat.indicator.file.pe.architecture'?: string | undefined; 'threat.indicator.file.pe.company'?: string | undefined; 'threat.indicator.file.pe.description'?: string | undefined; 'threat.indicator.file.pe.file_version'?: string | undefined; 'threat.indicator.file.pe.imphash'?: string | undefined; 'threat.indicator.file.pe.original_file_name'?: string | undefined; 'threat.indicator.file.pe.pehash'?: string | undefined; 'threat.indicator.file.pe.product'?: string | undefined; 'threat.indicator.file.size'?: string | number | undefined; 'threat.indicator.file.target_path'?: string | undefined; 'threat.indicator.file.type'?: string | undefined; 'threat.indicator.file.uid'?: string | undefined; 'threat.indicator.file.x509.alternative_names'?: string[] | undefined; 'threat.indicator.file.x509.issuer.common_name'?: string[] | undefined; 'threat.indicator.file.x509.issuer.country'?: string[] | undefined; 'threat.indicator.file.x509.issuer.distinguished_name'?: string | undefined; 'threat.indicator.file.x509.issuer.locality'?: string[] | undefined; 'threat.indicator.file.x509.issuer.organization'?: string[] | undefined; 'threat.indicator.file.x509.issuer.organizational_unit'?: string[] | undefined; 'threat.indicator.file.x509.issuer.state_or_province'?: string[] | undefined; 'threat.indicator.file.x509.not_after'?: string | number | undefined; 'threat.indicator.file.x509.not_before'?: string | number | undefined; 'threat.indicator.file.x509.public_key_algorithm'?: string | undefined; 'threat.indicator.file.x509.public_key_curve'?: string | undefined; 'threat.indicator.file.x509.public_key_exponent'?: string | number | undefined; 'threat.indicator.file.x509.public_key_size'?: string | number | undefined; 'threat.indicator.file.x509.serial_number'?: string | undefined; 'threat.indicator.file.x509.signature_algorithm'?: string | undefined; 'threat.indicator.file.x509.subject.common_name'?: string[] | undefined; 'threat.indicator.file.x509.subject.country'?: string[] | undefined; 'threat.indicator.file.x509.subject.distinguished_name'?: string | undefined; 'threat.indicator.file.x509.subject.locality'?: string[] | undefined; 'threat.indicator.file.x509.subject.organization'?: string[] | undefined; 'threat.indicator.file.x509.subject.organizational_unit'?: string[] | undefined; 'threat.indicator.file.x509.subject.state_or_province'?: string[] | undefined; 'threat.indicator.file.x509.version_number'?: string | undefined; 'threat.indicator.first_seen'?: string | number | undefined; 'threat.indicator.geo.city_name'?: string | undefined; 'threat.indicator.geo.continent_code'?: string | undefined; 'threat.indicator.geo.continent_name'?: string | undefined; 'threat.indicator.geo.country_iso_code'?: string | undefined; 'threat.indicator.geo.country_name'?: string | undefined; 'threat.indicator.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'threat.indicator.geo.name'?: string | undefined; 'threat.indicator.geo.postal_code'?: string | undefined; 'threat.indicator.geo.region_iso_code'?: string | undefined; 'threat.indicator.geo.region_name'?: string | undefined; 'threat.indicator.geo.timezone'?: string | undefined; 'threat.indicator.ip'?: string | undefined; 'threat.indicator.last_seen'?: string | number | undefined; 'threat.indicator.marking.tlp'?: string | undefined; 'threat.indicator.marking.tlp_version'?: string | undefined; 'threat.indicator.modified_at'?: string | number | undefined; 'threat.indicator.port'?: string | number | undefined; 'threat.indicator.provider'?: string | undefined; 'threat.indicator.reference'?: string | undefined; 'threat.indicator.registry.data.bytes'?: string | undefined; 'threat.indicator.registry.data.strings'?: string[] | undefined; 'threat.indicator.registry.data.type'?: string | undefined; 'threat.indicator.registry.hive'?: string | undefined; 'threat.indicator.registry.key'?: string | undefined; 'threat.indicator.registry.path'?: string | undefined; 'threat.indicator.registry.value'?: string | undefined; 'threat.indicator.scanner_stats'?: string | number | undefined; 'threat.indicator.sightings'?: string | number | undefined; 'threat.indicator.type'?: string | undefined; 'threat.indicator.url.domain'?: string | undefined; 'threat.indicator.url.extension'?: string | undefined; 'threat.indicator.url.fragment'?: string | undefined; 'threat.indicator.url.full'?: string | undefined; 'threat.indicator.url.original'?: string | undefined; 'threat.indicator.url.password'?: string | undefined; 'threat.indicator.url.path'?: string | undefined; 'threat.indicator.url.port'?: string | number | undefined; 'threat.indicator.url.query'?: string | undefined; 'threat.indicator.url.registered_domain'?: string | undefined; 'threat.indicator.url.scheme'?: string | undefined; 'threat.indicator.url.subdomain'?: string | undefined; 'threat.indicator.url.top_level_domain'?: string | undefined; 'threat.indicator.url.username'?: string | undefined; 'threat.indicator.x509.alternative_names'?: string[] | undefined; 'threat.indicator.x509.issuer.common_name'?: string[] | undefined; 'threat.indicator.x509.issuer.country'?: string[] | undefined; 'threat.indicator.x509.issuer.distinguished_name'?: string | undefined; 'threat.indicator.x509.issuer.locality'?: string[] | undefined; 'threat.indicator.x509.issuer.organization'?: string[] | undefined; 'threat.indicator.x509.issuer.organizational_unit'?: string[] | undefined; 'threat.indicator.x509.issuer.state_or_province'?: string[] | undefined; 'threat.indicator.x509.not_after'?: string | number | undefined; 'threat.indicator.x509.not_before'?: string | number | undefined; 'threat.indicator.x509.public_key_algorithm'?: string | undefined; 'threat.indicator.x509.public_key_curve'?: string | undefined; 'threat.indicator.x509.public_key_exponent'?: string | number | undefined; 'threat.indicator.x509.public_key_size'?: string | number | undefined; 'threat.indicator.x509.serial_number'?: string | undefined; 'threat.indicator.x509.signature_algorithm'?: string | undefined; 'threat.indicator.x509.subject.common_name'?: string[] | undefined; 'threat.indicator.x509.subject.country'?: string[] | undefined; 'threat.indicator.x509.subject.distinguished_name'?: string | undefined; 'threat.indicator.x509.subject.locality'?: string[] | undefined; 'threat.indicator.x509.subject.organization'?: string[] | undefined; 'threat.indicator.x509.subject.organizational_unit'?: string[] | undefined; 'threat.indicator.x509.subject.state_or_province'?: string[] | undefined; 'threat.indicator.x509.version_number'?: string | undefined; 'threat.software.alias'?: string[] | undefined; 'threat.software.id'?: string | undefined; 'threat.software.name'?: string | undefined; 'threat.software.platforms'?: string[] | undefined; 'threat.software.reference'?: string | undefined; 'threat.software.type'?: string | undefined; 'threat.tactic.id'?: string[] | undefined; 'threat.tactic.name'?: string[] | undefined; 'threat.tactic.reference'?: string[] | undefined; 'threat.technique.id'?: string[] | undefined; 'threat.technique.name'?: string[] | undefined; 'threat.technique.reference'?: string[] | undefined; 'threat.technique.subtechnique.id'?: string[] | undefined; 'threat.technique.subtechnique.name'?: string[] | undefined; 'threat.technique.subtechnique.reference'?: string[] | undefined; 'tls.cipher'?: string | undefined; 'tls.client.certificate'?: string | undefined; 'tls.client.certificate_chain'?: string[] | undefined; 'tls.client.hash.md5'?: string | undefined; 'tls.client.hash.sha1'?: string | undefined; 'tls.client.hash.sha256'?: string | undefined; 'tls.client.issuer'?: string | undefined; 'tls.client.ja3'?: string | undefined; 'tls.client.not_after'?: string | number | undefined; 'tls.client.not_before'?: string | number | undefined; 'tls.client.server_name'?: string | undefined; 'tls.client.subject'?: string | undefined; 'tls.client.supported_ciphers'?: string[] | undefined; 'tls.client.x509.alternative_names'?: string[] | undefined; 'tls.client.x509.issuer.common_name'?: string[] | undefined; 'tls.client.x509.issuer.country'?: string[] | undefined; 'tls.client.x509.issuer.distinguished_name'?: string | undefined; 'tls.client.x509.issuer.locality'?: string[] | undefined; 'tls.client.x509.issuer.organization'?: string[] | undefined; 'tls.client.x509.issuer.organizational_unit'?: string[] | undefined; 'tls.client.x509.issuer.state_or_province'?: string[] | undefined; 'tls.client.x509.not_after'?: string | number | undefined; 'tls.client.x509.not_before'?: string | number | undefined; 'tls.client.x509.public_key_algorithm'?: string | undefined; 'tls.client.x509.public_key_curve'?: string | undefined; 'tls.client.x509.public_key_exponent'?: string | number | undefined; 'tls.client.x509.public_key_size'?: string | number | undefined; 'tls.client.x509.serial_number'?: string | undefined; 'tls.client.x509.signature_algorithm'?: string | undefined; 'tls.client.x509.subject.common_name'?: string[] | undefined; 'tls.client.x509.subject.country'?: string[] | undefined; 'tls.client.x509.subject.distinguished_name'?: string | undefined; 'tls.client.x509.subject.locality'?: string[] | undefined; 'tls.client.x509.subject.organization'?: string[] | undefined; 'tls.client.x509.subject.organizational_unit'?: string[] | undefined; 'tls.client.x509.subject.state_or_province'?: string[] | undefined; 'tls.client.x509.version_number'?: string | undefined; 'tls.curve'?: string | undefined; 'tls.established'?: boolean | undefined; 'tls.next_protocol'?: string | undefined; 'tls.resumed'?: boolean | undefined; 'tls.server.certificate'?: string | undefined; 'tls.server.certificate_chain'?: string[] | undefined; 'tls.server.hash.md5'?: string | undefined; 'tls.server.hash.sha1'?: string | undefined; 'tls.server.hash.sha256'?: string | undefined; 'tls.server.issuer'?: string | undefined; 'tls.server.ja3s'?: string | undefined; 'tls.server.not_after'?: string | number | undefined; 'tls.server.not_before'?: string | number | undefined; 'tls.server.subject'?: string | undefined; 'tls.server.x509.alternative_names'?: string[] | undefined; 'tls.server.x509.issuer.common_name'?: string[] | undefined; 'tls.server.x509.issuer.country'?: string[] | undefined; 'tls.server.x509.issuer.distinguished_name'?: string | undefined; 'tls.server.x509.issuer.locality'?: string[] | undefined; 'tls.server.x509.issuer.organization'?: string[] | undefined; 'tls.server.x509.issuer.organizational_unit'?: string[] | undefined; 'tls.server.x509.issuer.state_or_province'?: string[] | undefined; 'tls.server.x509.not_after'?: string | number | undefined; 'tls.server.x509.not_before'?: string | number | undefined; 'tls.server.x509.public_key_algorithm'?: string | undefined; 'tls.server.x509.public_key_curve'?: string | undefined; 'tls.server.x509.public_key_exponent'?: string | number | undefined; 'tls.server.x509.public_key_size'?: string | number | undefined; 'tls.server.x509.serial_number'?: string | undefined; 'tls.server.x509.signature_algorithm'?: string | undefined; 'tls.server.x509.subject.common_name'?: string[] | undefined; 'tls.server.x509.subject.country'?: string[] | undefined; 'tls.server.x509.subject.distinguished_name'?: string | undefined; 'tls.server.x509.subject.locality'?: string[] | undefined; 'tls.server.x509.subject.organization'?: string[] | undefined; 'tls.server.x509.subject.organizational_unit'?: string[] | undefined; 'tls.server.x509.subject.state_or_province'?: string[] | undefined; 'tls.server.x509.version_number'?: string | undefined; 'tls.version'?: string | undefined; 'tls.version_protocol'?: string | undefined; 'trace.id'?: string | undefined; 'transaction.id'?: string | undefined; 'url.domain'?: string | undefined; 'url.extension'?: string | undefined; 'url.fragment'?: string | undefined; 'url.full'?: string | undefined; 'url.original'?: string | undefined; 'url.password'?: string | undefined; 'url.path'?: string | undefined; 'url.port'?: string | number | undefined; 'url.query'?: string | undefined; 'url.registered_domain'?: string | undefined; 'url.scheme'?: string | undefined; 'url.subdomain'?: string | undefined; 'url.top_level_domain'?: string | undefined; 'url.username'?: string | undefined; 'user.changes.domain'?: string | undefined; 'user.changes.email'?: string | undefined; 'user.changes.full_name'?: string | undefined; 'user.changes.group.domain'?: string | undefined; 'user.changes.group.id'?: string | undefined; 'user.changes.group.name'?: string | undefined; 'user.changes.hash'?: string | undefined; 'user.changes.id'?: string | undefined; 'user.changes.name'?: string | undefined; 'user.changes.roles'?: string[] | undefined; 'user.domain'?: string | undefined; 'user.effective.domain'?: string | undefined; 'user.effective.email'?: string | undefined; 'user.effective.full_name'?: string | undefined; 'user.effective.group.domain'?: string | undefined; 'user.effective.group.id'?: string | undefined; 'user.effective.group.name'?: string | undefined; 'user.effective.hash'?: string | undefined; 'user.effective.id'?: string | undefined; 'user.effective.name'?: string | undefined; 'user.effective.roles'?: string[] | undefined; 'user.email'?: string | undefined; 'user.full_name'?: string | undefined; 'user.group.domain'?: string | undefined; 'user.group.id'?: string | undefined; 'user.group.name'?: string | undefined; 'user.hash'?: string | undefined; 'user.id'?: string | undefined; 'user.name'?: string | undefined; 'user.risk.calculated_level'?: string | undefined; 'user.risk.calculated_score'?: number | undefined; 'user.risk.calculated_score_norm'?: number | undefined; 'user.risk.static_level'?: string | undefined; 'user.risk.static_score'?: number | undefined; 'user.risk.static_score_norm'?: number | undefined; 'user.roles'?: string[] | undefined; 'user.target.domain'?: string | undefined; 'user.target.email'?: string | undefined; 'user.target.full_name'?: string | undefined; 'user.target.group.domain'?: string | undefined; 'user.target.group.id'?: string | undefined; 'user.target.group.name'?: string | undefined; 'user.target.hash'?: string | undefined; 'user.target.id'?: string | undefined; 'user.target.name'?: string | undefined; 'user.target.roles'?: string[] | undefined; 'user_agent.device.name'?: string | undefined; 'user_agent.name'?: string | undefined; 'user_agent.original'?: string | undefined; 'user_agent.os.family'?: string | undefined; 'user_agent.os.full'?: string | undefined; 'user_agent.os.kernel'?: string | undefined; 'user_agent.os.name'?: string | undefined; 'user_agent.os.platform'?: string | undefined; 'user_agent.os.type'?: string | undefined; 'user_agent.os.version'?: string | undefined; 'user_agent.version'?: string | undefined; 'vulnerability.category'?: string[] | undefined; 'vulnerability.classification'?: string | undefined; 'vulnerability.description'?: string | undefined; 'vulnerability.enumeration'?: string | undefined; 'vulnerability.id'?: string | undefined; 'vulnerability.reference'?: string | undefined; 'vulnerability.report_id'?: string | undefined; 'vulnerability.scanner.vendor'?: string | undefined; 'vulnerability.score.base'?: number | undefined; 'vulnerability.score.environmental'?: number | undefined; 'vulnerability.score.temporal'?: number | undefined; 'vulnerability.score.version'?: string | undefined; 'vulnerability.severity'?: string | undefined; } & {} & { 'ecs.version'?: string | undefined; 'kibana.alert.risk_score'?: number | undefined; 'kibana.alert.rule.author'?: string | undefined; 'kibana.alert.rule.created_at'?: string | number | undefined; 'kibana.alert.rule.created_by'?: string | undefined; 'kibana.alert.rule.description'?: string | undefined; 'kibana.alert.rule.enabled'?: string | undefined; 'kibana.alert.rule.from'?: string | undefined; 'kibana.alert.rule.interval'?: string | undefined; 'kibana.alert.rule.license'?: string | undefined; 'kibana.alert.rule.note'?: string | undefined; 'kibana.alert.rule.references'?: string[] | undefined; 'kibana.alert.rule.rule_id'?: string | undefined; 'kibana.alert.rule.rule_name_override'?: string | undefined; 'kibana.alert.rule.to'?: string | undefined; 'kibana.alert.rule.type'?: string | undefined; 'kibana.alert.rule.updated_at'?: string | number | undefined; 'kibana.alert.rule.updated_by'?: string | undefined; 'kibana.alert.rule.version'?: string | undefined; 'kibana.alert.severity'?: string | undefined; 'kibana.alert.suppression.docs_count'?: string | number | undefined; 'kibana.alert.suppression.end'?: string | number | undefined; 'kibana.alert.suppression.start'?: string | number | undefined; 'kibana.alert.suppression.terms.field'?: string[] | undefined; 'kibana.alert.suppression.terms.value'?: string[] | undefined; 'kibana.alert.system_status'?: string | undefined; 'kibana.alert.workflow_reason'?: string | undefined; 'kibana.alert.workflow_status_updated_at'?: string | number | undefined; 'kibana.alert.workflow_user'?: string | undefined; }) | ({} & { 'kibana.alert.context'?: unknown; 'kibana.alert.evaluation.threshold'?: string | number | undefined; 'kibana.alert.evaluation.value'?: string | number | undefined; 'kibana.alert.evaluation.values'?: (string | number)[] | undefined; 'kibana.alert.group'?: { field?: string | undefined; value?: string | undefined; }[] | undefined; 'slo.id'?: string | undefined; 'slo.instanceId'?: string | undefined; 'slo.revision'?: string | number | undefined; } & { '@timestamp': string | number; 'kibana.alert.instance.id': string; 'kibana.alert.rule.category': string; 'kibana.alert.rule.consumer': string; 'kibana.alert.rule.name': string; 'kibana.alert.rule.producer': string; 'kibana.alert.rule.revision': string | number; 'kibana.alert.rule.rule_type_id': string; 'kibana.alert.rule.uuid': string; 'kibana.alert.status': string; 'kibana.alert.uuid': string; 'kibana.space_ids': string[]; } & { 'event.action'?: string | undefined; 'event.kind'?: string | undefined; 'kibana.alert.action_group'?: string | undefined; 'kibana.alert.case_ids'?: string[] | undefined; 'kibana.alert.duration.us'?: string | number | undefined; 'kibana.alert.end'?: string | number | undefined; 'kibana.alert.flapping'?: boolean | undefined; 'kibana.alert.flapping_history'?: boolean[] | undefined; 'kibana.alert.last_detected'?: string | number | undefined; 'kibana.alert.maintenance_window_ids'?: string[] | undefined; 'kibana.alert.reason'?: string | undefined; 'kibana.alert.rule.execution.uuid'?: string | undefined; 'kibana.alert.rule.parameters'?: unknown; 'kibana.alert.rule.tags'?: string[] | undefined; 'kibana.alert.start'?: string | number | undefined; 'kibana.alert.time_range'?: { gte?: string | number | undefined; lte?: string | number | undefined; } | undefined; 'kibana.alert.url'?: string | undefined; 'kibana.alert.workflow_assignee_ids'?: string[] | undefined; 'kibana.alert.workflow_status'?: string | undefined; 'kibana.alert.workflow_tags'?: string[] | undefined; 'kibana.version'?: string | undefined; tags?: string[] | undefined; } & {} & { 'ecs.version'?: string | undefined; 'kibana.alert.risk_score'?: number | undefined; 'kibana.alert.rule.author'?: string | undefined; 'kibana.alert.rule.created_at'?: string | number | undefined; 'kibana.alert.rule.created_by'?: string | undefined; 'kibana.alert.rule.description'?: string | undefined; 'kibana.alert.rule.enabled'?: string | undefined; 'kibana.alert.rule.from'?: string | undefined; 'kibana.alert.rule.interval'?: string | undefined; 'kibana.alert.rule.license'?: string | undefined; 'kibana.alert.rule.note'?: string | undefined; 'kibana.alert.rule.references'?: string[] | undefined; 'kibana.alert.rule.rule_id'?: string | undefined; 'kibana.alert.rule.rule_name_override'?: string | undefined; 'kibana.alert.rule.to'?: string | undefined; 'kibana.alert.rule.type'?: string | undefined; 'kibana.alert.rule.updated_at'?: string | number | undefined; 'kibana.alert.rule.updated_by'?: string | undefined; 'kibana.alert.rule.version'?: string | undefined; 'kibana.alert.severity'?: string | undefined; 'kibana.alert.suppression.docs_count'?: string | number | undefined; 'kibana.alert.suppression.end'?: string | number | undefined; 'kibana.alert.suppression.start'?: string | number | undefined; 'kibana.alert.suppression.terms.field'?: string[] | undefined; 'kibana.alert.suppression.terms.value'?: string[] | undefined; 'kibana.alert.system_status'?: string | undefined; 'kibana.alert.workflow_reason'?: string | undefined; 'kibana.alert.workflow_status_updated_at'?: string | number | undefined; 'kibana.alert.workflow_user'?: string | undefined; }) | ({} & { 'agent.name'?: string | undefined; 'anomaly.bucket_span.minutes'?: string | undefined; 'anomaly.start'?: string | number | undefined; 'error.message'?: string | undefined; 'kibana.alert.context'?: unknown; 'kibana.alert.evaluation.threshold'?: string | number | undefined; 'kibana.alert.evaluation.value'?: string | number | undefined; 'kibana.alert.evaluation.values'?: (string | number)[] | undefined; 'kibana.alert.group'?: { field?: string | undefined; value?: string | undefined; }[] | undefined; 'monitor.id'?: string | undefined; 'monitor.name'?: string | undefined; 'monitor.type'?: string | undefined; 'observer.geo.name'?: string | undefined; 'tls.server.hash.sha256'?: string | undefined; 'tls.server.x509.issuer.common_name'?: string | undefined; 'tls.server.x509.not_after'?: string | number | undefined; 'tls.server.x509.not_before'?: string | number | undefined; 'tls.server.x509.subject.common_name'?: string | undefined; 'url.full'?: string | undefined; } & { '@timestamp': string | number; 'kibana.alert.instance.id': string; 'kibana.alert.rule.category': string; 'kibana.alert.rule.consumer': string; 'kibana.alert.rule.name': string; 'kibana.alert.rule.producer': string; 'kibana.alert.rule.revision': string | number; 'kibana.alert.rule.rule_type_id': string; 'kibana.alert.rule.uuid': string; 'kibana.alert.status': string; 'kibana.alert.uuid': string; 'kibana.space_ids': string[]; } & { 'event.action'?: string | undefined; 'event.kind'?: string | undefined; 'kibana.alert.action_group'?: string | undefined; 'kibana.alert.case_ids'?: string[] | undefined; 'kibana.alert.duration.us'?: string | number | undefined; 'kibana.alert.end'?: string | number | undefined; 'kibana.alert.flapping'?: boolean | undefined; 'kibana.alert.flapping_history'?: boolean[] | undefined; 'kibana.alert.last_detected'?: string | number | undefined; 'kibana.alert.maintenance_window_ids'?: string[] | undefined; 'kibana.alert.reason'?: string | undefined; 'kibana.alert.rule.execution.uuid'?: string | undefined; 'kibana.alert.rule.parameters'?: unknown; 'kibana.alert.rule.tags'?: string[] | undefined; 'kibana.alert.start'?: string | number | undefined; 'kibana.alert.time_range'?: { gte?: string | number | undefined; lte?: string | number | undefined; } | undefined; 'kibana.alert.url'?: string | undefined; 'kibana.alert.workflow_assignee_ids'?: string[] | undefined; 'kibana.alert.workflow_status'?: string | undefined; 'kibana.alert.workflow_tags'?: string[] | undefined; 'kibana.version'?: string | undefined; tags?: string[] | undefined; } & {} & { 'ecs.version'?: string | undefined; 'kibana.alert.risk_score'?: number | undefined; 'kibana.alert.rule.author'?: string | undefined; 'kibana.alert.rule.created_at'?: string | number | undefined; 'kibana.alert.rule.created_by'?: string | undefined; 'kibana.alert.rule.description'?: string | undefined; 'kibana.alert.rule.enabled'?: string | undefined; 'kibana.alert.rule.from'?: string | undefined; 'kibana.alert.rule.interval'?: string | undefined; 'kibana.alert.rule.license'?: string | undefined; 'kibana.alert.rule.note'?: string | undefined; 'kibana.alert.rule.references'?: string[] | undefined; 'kibana.alert.rule.rule_id'?: string | undefined; 'kibana.alert.rule.rule_name_override'?: string | undefined; 'kibana.alert.rule.to'?: string | undefined; 'kibana.alert.rule.type'?: string | undefined; 'kibana.alert.rule.updated_at'?: string | number | undefined; 'kibana.alert.rule.updated_by'?: string | undefined; 'kibana.alert.rule.version'?: string | undefined; 'kibana.alert.severity'?: string | undefined; 'kibana.alert.suppression.docs_count'?: string | number | undefined; 'kibana.alert.suppression.end'?: string | number | undefined; 'kibana.alert.suppression.start'?: string | number | undefined; 'kibana.alert.suppression.terms.field'?: string[] | undefined; 'kibana.alert.suppression.terms.value'?: string[] | undefined; 'kibana.alert.system_status'?: string | undefined; 'kibana.alert.workflow_reason'?: string | undefined; 'kibana.alert.workflow_status_updated_at'?: string | number | undefined; 'kibana.alert.workflow_user'?: string | undefined; }) | ({ '@timestamp': string | number; 'kibana.alert.ancestors': { depth: string | number; id: string; index: string; type: string; }[]; 'kibana.alert.depth': string | number; 'kibana.alert.instance.id': string; 'kibana.alert.original_event.action': string; 'kibana.alert.original_event.category': string[]; 'kibana.alert.original_event.created': string | number; 'kibana.alert.original_event.dataset': string; 'kibana.alert.original_event.id': string; 'kibana.alert.original_event.ingested': string | number; 'kibana.alert.original_event.kind': string; 'kibana.alert.original_event.module': string; 'kibana.alert.original_event.original': string; 'kibana.alert.original_event.outcome': string; 'kibana.alert.original_event.provider': string; 'kibana.alert.original_event.sequence': string | number; 'kibana.alert.original_event.type': string[]; 'kibana.alert.original_time': string | number; 'kibana.alert.rule.category': string; 'kibana.alert.rule.consumer': string; 'kibana.alert.rule.false_positives': string[]; 'kibana.alert.rule.max_signals': (string | number)[]; 'kibana.alert.rule.name': string; 'kibana.alert.rule.producer': string; 'kibana.alert.rule.revision': string | number; 'kibana.alert.rule.rule_type_id': string; 'kibana.alert.rule.threat.framework': string; 'kibana.alert.rule.threat.tactic.id': string; 'kibana.alert.rule.threat.tactic.name': string; 'kibana.alert.rule.threat.tactic.reference': string; 'kibana.alert.rule.threat.technique.id': string; 'kibana.alert.rule.threat.technique.name': string; 'kibana.alert.rule.threat.technique.reference': string; 'kibana.alert.rule.threat.technique.subtechnique.id': string; 'kibana.alert.rule.threat.technique.subtechnique.name': string; 'kibana.alert.rule.threat.technique.subtechnique.reference': string; 'kibana.alert.rule.uuid': string; 'kibana.alert.status': string; 'kibana.alert.uuid': string; 'kibana.space_ids': string[]; } & { 'ecs.version'?: string | undefined; 'event.action'?: string | undefined; 'event.kind'?: string | undefined; 'kibana.alert.action_group'?: string | undefined; 'kibana.alert.ancestors.rule'?: string | undefined; 'kibana.alert.building_block_type'?: string | undefined; 'kibana.alert.case_ids'?: string[] | undefined; 'kibana.alert.duration.us'?: string | number | undefined; 'kibana.alert.end'?: string | number | undefined; 'kibana.alert.flapping'?: boolean | undefined; 'kibana.alert.flapping_history'?: boolean[] | undefined; 'kibana.alert.group.id'?: string | undefined; 'kibana.alert.group.index'?: number | undefined; 'kibana.alert.host.criticality_level'?: string | undefined; 'kibana.alert.last_detected'?: string | number | undefined; 'kibana.alert.maintenance_window_ids'?: string[] | undefined; 'kibana.alert.new_terms'?: string[] | undefined; 'kibana.alert.original_event.agent_id_status'?: string | undefined; 'kibana.alert.original_event.code'?: string | undefined; 'kibana.alert.original_event.duration'?: string | undefined; 'kibana.alert.original_event.end'?: string | number | undefined; 'kibana.alert.original_event.hash'?: string | undefined; 'kibana.alert.original_event.reason'?: string | undefined; 'kibana.alert.original_event.reference'?: string | undefined; 'kibana.alert.original_event.risk_score'?: number | undefined; 'kibana.alert.original_event.risk_score_norm'?: number | undefined; 'kibana.alert.original_event.severity'?: string | number | undefined; 'kibana.alert.original_event.start'?: string | number | undefined; 'kibana.alert.original_event.timezone'?: string | undefined; 'kibana.alert.original_event.url'?: string | undefined; 'kibana.alert.reason'?: string | undefined; 'kibana.alert.risk_score'?: number | undefined; 'kibana.alert.rule.author'?: string | undefined; 'kibana.alert.rule.building_block_type'?: string | undefined; 'kibana.alert.rule.created_at'?: string | number | undefined; 'kibana.alert.rule.created_by'?: string | undefined; 'kibana.alert.rule.description'?: string | undefined; 'kibana.alert.rule.enabled'?: string | undefined; 'kibana.alert.rule.execution.uuid'?: string | undefined; 'kibana.alert.rule.from'?: string | undefined; 'kibana.alert.rule.immutable'?: string[] | undefined; 'kibana.alert.rule.interval'?: string | undefined; 'kibana.alert.rule.license'?: string | undefined; 'kibana.alert.rule.note'?: string | undefined; 'kibana.alert.rule.parameters'?: unknown; 'kibana.alert.rule.references'?: string[] | undefined; 'kibana.alert.rule.rule_id'?: string | undefined; 'kibana.alert.rule.rule_name_override'?: string | undefined; 'kibana.alert.rule.tags'?: string[] | undefined; 'kibana.alert.rule.timeline_id'?: string[] | undefined; 'kibana.alert.rule.timeline_title'?: string[] | undefined; 'kibana.alert.rule.timestamp_override'?: string | undefined; 'kibana.alert.rule.to'?: string | undefined; 'kibana.alert.rule.type'?: string | undefined; 'kibana.alert.rule.updated_at'?: string | number | undefined; 'kibana.alert.rule.updated_by'?: string | undefined; 'kibana.alert.rule.version'?: string | undefined; 'kibana.alert.severity'?: string | undefined; 'kibana.alert.start'?: string | number | undefined; 'kibana.alert.suppression.docs_count'?: string | number | undefined; 'kibana.alert.suppression.end'?: string | number | undefined; 'kibana.alert.suppression.start'?: string | number | undefined; 'kibana.alert.suppression.terms.field'?: string[] | undefined; 'kibana.alert.suppression.terms.value'?: string[] | undefined; 'kibana.alert.system_status'?: string | undefined; 'kibana.alert.threshold_result.cardinality'?: unknown; 'kibana.alert.threshold_result.count'?: string | number | undefined; 'kibana.alert.threshold_result.from'?: string | number | undefined; 'kibana.alert.threshold_result.terms'?: { field?: string | undefined; value?: string | undefined; }[] | undefined; 'kibana.alert.time_range'?: { gte?: string | number | undefined; lte?: string | number | undefined; } | undefined; 'kibana.alert.url'?: string | undefined; 'kibana.alert.user.criticality_level'?: string | undefined; 'kibana.alert.workflow_assignee_ids'?: string[] | undefined; 'kibana.alert.workflow_reason'?: string | undefined; 'kibana.alert.workflow_status'?: string | undefined; 'kibana.alert.workflow_status_updated_at'?: string | number | undefined; 'kibana.alert.workflow_tags'?: string[] | undefined; 'kibana.alert.workflow_user'?: string | undefined; 'kibana.version'?: string | undefined; tags?: string[] | undefined; } & { '@timestamp': string | number; 'kibana.alert.instance.id': string; 'kibana.alert.rule.category': string; 'kibana.alert.rule.consumer': string; 'kibana.alert.rule.name': string; 'kibana.alert.rule.producer': string; 'kibana.alert.rule.revision': string | number; 'kibana.alert.rule.rule_type_id': string; 'kibana.alert.rule.uuid': string; 'kibana.alert.status': string; 'kibana.alert.uuid': string; 'kibana.space_ids': string[]; } & { 'event.action'?: string | undefined; 'event.kind'?: string | undefined; 'kibana.alert.action_group'?: string | undefined; 'kibana.alert.case_ids'?: string[] | undefined; 'kibana.alert.duration.us'?: string | number | undefined; 'kibana.alert.end'?: string | number | undefined; 'kibana.alert.flapping'?: boolean | undefined; 'kibana.alert.flapping_history'?: boolean[] | undefined; 'kibana.alert.last_detected'?: string | number | undefined; 'kibana.alert.maintenance_window_ids'?: string[] | undefined; 'kibana.alert.reason'?: string | undefined; 'kibana.alert.rule.execution.uuid'?: string | undefined; 'kibana.alert.rule.parameters'?: unknown; 'kibana.alert.rule.tags'?: string[] | undefined; 'kibana.alert.start'?: string | number | undefined; 'kibana.alert.time_range'?: { gte?: string | number | undefined; lte?: string | number | undefined; } | undefined; 'kibana.alert.url'?: string | undefined; 'kibana.alert.workflow_assignee_ids'?: string[] | undefined; 'kibana.alert.workflow_status'?: string | undefined; 'kibana.alert.workflow_tags'?: string[] | undefined; 'kibana.version'?: string | undefined; tags?: string[] | undefined; } & { '@timestamp': string | number; 'ecs.version': string; } & { 'agent.build.original'?: string | undefined; 'agent.ephemeral_id'?: string | undefined; 'agent.id'?: string | undefined; 'agent.name'?: string | undefined; 'agent.type'?: string | undefined; 'agent.version'?: string | undefined; 'client.address'?: string | undefined; 'client.as.number'?: string | number | undefined; 'client.as.organization.name'?: string | undefined; 'client.bytes'?: string | number | undefined; 'client.domain'?: string | undefined; 'client.geo.city_name'?: string | undefined; 'client.geo.continent_code'?: string | undefined; 'client.geo.continent_name'?: string | undefined; 'client.geo.country_iso_code'?: string | undefined; 'client.geo.country_name'?: string | undefined; 'client.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'client.geo.name'?: string | undefined; 'client.geo.postal_code'?: string | undefined; 'client.geo.region_iso_code'?: string | undefined; 'client.geo.region_name'?: string | undefined; 'client.geo.timezone'?: string | undefined; 'client.ip'?: string | undefined; 'client.mac'?: string | undefined; 'client.nat.ip'?: string | undefined; 'client.nat.port'?: string | number | undefined; 'client.packets'?: string | number | undefined; 'client.port'?: string | number | undefined; 'client.registered_domain'?: string | undefined; 'client.subdomain'?: string | undefined; 'client.top_level_domain'?: string | undefined; 'client.user.domain'?: string | undefined; 'client.user.email'?: string | undefined; 'client.user.full_name'?: string | undefined; 'client.user.group.domain'?: string | undefined; 'client.user.group.id'?: string | undefined; 'client.user.group.name'?: string | undefined; 'client.user.hash'?: string | undefined; 'client.user.id'?: string | undefined; 'client.user.name'?: string | undefined; 'client.user.roles'?: string[] | undefined; 'cloud.account.id'?: string | undefined; 'cloud.account.name'?: string | undefined; 'cloud.availability_zone'?: string | undefined; 'cloud.instance.id'?: string | undefined; 'cloud.instance.name'?: string | undefined; 'cloud.machine.type'?: string | undefined; 'cloud.origin.account.id'?: string | undefined; 'cloud.origin.account.name'?: string | undefined; 'cloud.origin.availability_zone'?: string | undefined; 'cloud.origin.instance.id'?: string | undefined; 'cloud.origin.instance.name'?: string | undefined; 'cloud.origin.machine.type'?: string | undefined; 'cloud.origin.project.id'?: string | undefined; 'cloud.origin.project.name'?: string | undefined; 'cloud.origin.provider'?: string | undefined; 'cloud.origin.region'?: string | undefined; 'cloud.origin.service.name'?: string | undefined; 'cloud.project.id'?: string | undefined; 'cloud.project.name'?: string | undefined; 'cloud.provider'?: string | undefined; 'cloud.region'?: string | undefined; 'cloud.service.name'?: string | undefined; 'cloud.target.account.id'?: string | undefined; 'cloud.target.account.name'?: string | undefined; 'cloud.target.availability_zone'?: string | undefined; 'cloud.target.instance.id'?: string | undefined; 'cloud.target.instance.name'?: string | undefined; 'cloud.target.machine.type'?: string | undefined; 'cloud.target.project.id'?: string | undefined; 'cloud.target.project.name'?: string | undefined; 'cloud.target.provider'?: string | undefined; 'cloud.target.region'?: string | undefined; 'cloud.target.service.name'?: string | undefined; 'container.cpu.usage'?: string | number | undefined; 'container.disk.read.bytes'?: string | number | undefined; 'container.disk.write.bytes'?: string | number | undefined; 'container.id'?: string | undefined; 'container.image.hash.all'?: string[] | undefined; 'container.image.name'?: string | undefined; 'container.image.tag'?: string[] | undefined; 'container.labels'?: unknown; 'container.memory.usage'?: string | number | undefined; 'container.name'?: string | undefined; 'container.network.egress.bytes'?: string | number | undefined; 'container.network.ingress.bytes'?: string | number | undefined; 'container.runtime'?: string | undefined; 'destination.address'?: string | undefined; 'destination.as.number'?: string | number | undefined; 'destination.as.organization.name'?: string | undefined; 'destination.bytes'?: string | number | undefined; 'destination.domain'?: string | undefined; 'destination.geo.city_name'?: string | undefined; 'destination.geo.continent_code'?: string | undefined; 'destination.geo.continent_name'?: string | undefined; 'destination.geo.country_iso_code'?: string | undefined; 'destination.geo.country_name'?: string | undefined; 'destination.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'destination.geo.name'?: string | undefined; 'destination.geo.postal_code'?: string | undefined; 'destination.geo.region_iso_code'?: string | undefined; 'destination.geo.region_name'?: string | undefined; 'destination.geo.timezone'?: string | undefined; 'destination.ip'?: string | undefined; 'destination.mac'?: string | undefined; 'destination.nat.ip'?: string | undefined; 'destination.nat.port'?: string | number | undefined; 'destination.packets'?: string | number | undefined; 'destination.port'?: string | number | undefined; 'destination.registered_domain'?: string | undefined; 'destination.subdomain'?: string | undefined; 'destination.top_level_domain'?: string | undefined; 'destination.user.domain'?: string | undefined; 'destination.user.email'?: string | undefined; 'destination.user.full_name'?: string | undefined; 'destination.user.group.domain'?: string | undefined; 'destination.user.group.id'?: string | undefined; 'destination.user.group.name'?: string | undefined; 'destination.user.hash'?: string | undefined; 'destination.user.id'?: string | undefined; 'destination.user.name'?: string | undefined; 'destination.user.roles'?: string[] | undefined; 'device.id'?: string | undefined; 'device.manufacturer'?: string | undefined; 'device.model.identifier'?: string | undefined; 'device.model.name'?: string | undefined; 'dll.code_signature.digest_algorithm'?: string | undefined; 'dll.code_signature.exists'?: boolean | undefined; 'dll.code_signature.signing_id'?: string | undefined; 'dll.code_signature.status'?: string | undefined; 'dll.code_signature.subject_name'?: string | undefined; 'dll.code_signature.team_id'?: string | undefined; 'dll.code_signature.timestamp'?: string | number | undefined; 'dll.code_signature.trusted'?: boolean | undefined; 'dll.code_signature.valid'?: boolean | undefined; 'dll.hash.md5'?: string | undefined; 'dll.hash.sha1'?: string | undefined; 'dll.hash.sha256'?: string | undefined; 'dll.hash.sha384'?: string | undefined; 'dll.hash.sha512'?: string | undefined; 'dll.hash.ssdeep'?: string | undefined; 'dll.hash.tlsh'?: string | undefined; 'dll.name'?: string | undefined; 'dll.path'?: string | undefined; 'dll.pe.architecture'?: string | undefined; 'dll.pe.company'?: string | undefined; 'dll.pe.description'?: string | undefined; 'dll.pe.file_version'?: string | undefined; 'dll.pe.imphash'?: string | undefined; 'dll.pe.original_file_name'?: string | undefined; 'dll.pe.pehash'?: string | undefined; 'dll.pe.product'?: string | undefined; 'dns.answers'?: { class?: string | undefined; data?: string | undefined; name?: string | undefined; ttl?: string | number | undefined; type?: string | undefined; }[] | undefined; 'dns.header_flags'?: string[] | undefined; 'dns.id'?: string | undefined; 'dns.op_code'?: string | undefined; 'dns.question.class'?: string | undefined; 'dns.question.name'?: string | undefined; 'dns.question.registered_domain'?: string | undefined; 'dns.question.subdomain'?: string | undefined; 'dns.question.top_level_domain'?: string | undefined; 'dns.question.type'?: string | undefined; 'dns.resolved_ip'?: string[] | undefined; 'dns.response_code'?: string | undefined; 'dns.type'?: string | undefined; 'email.attachments'?: { 'file.extension'?: string | undefined; 'file.hash.md5'?: string | undefined; 'file.hash.sha1'?: string | undefined; 'file.hash.sha256'?: string | undefined; 'file.hash.sha384'?: string | undefined; 'file.hash.sha512'?: string | undefined; 'file.hash.ssdeep'?: string | undefined; 'file.hash.tlsh'?: string | undefined; 'file.mime_type'?: string | undefined; 'file.name'?: string | undefined; 'file.size'?: string | number | undefined; }[] | undefined; 'email.bcc.address'?: string[] | undefined; 'email.cc.address'?: string[] | undefined; 'email.content_type'?: string | undefined; 'email.delivery_timestamp'?: string | number | undefined; 'email.direction'?: string | undefined; 'email.from.address'?: string[] | undefined; 'email.local_id'?: string | undefined; 'email.message_id'?: string | undefined; 'email.origination_timestamp'?: string | number | undefined; 'email.reply_to.address'?: string[] | undefined; 'email.sender.address'?: string | undefined; 'email.subject'?: string | undefined; 'email.to.address'?: string[] | undefined; 'email.x_mailer'?: string | undefined; 'error.code'?: string | undefined; 'error.id'?: string | undefined; 'error.message'?: string | undefined; 'error.stack_trace'?: string | undefined; 'error.type'?: string | undefined; 'event.action'?: string | undefined; 'event.agent_id_status'?: string | undefined; 'event.category'?: string[] | undefined; 'event.code'?: string | undefined; 'event.created'?: string | number | undefined; 'event.dataset'?: string | undefined; 'event.duration'?: string | number | undefined; 'event.end'?: string | number | undefined; 'event.hash'?: string | undefined; 'event.id'?: string | undefined; 'event.ingested'?: string | number | undefined; 'event.kind'?: string | undefined; 'event.module'?: string | undefined; 'event.original'?: string | undefined; 'event.outcome'?: string | undefined; 'event.provider'?: string | undefined; 'event.reason'?: string | undefined; 'event.reference'?: string | undefined; 'event.risk_score'?: number | undefined; 'event.risk_score_norm'?: number | undefined; 'event.sequence'?: string | number | undefined; 'event.severity'?: string | number | undefined; 'event.start'?: string | number | undefined; 'event.timezone'?: string | undefined; 'event.type'?: string[] | undefined; 'event.url'?: string | undefined; 'faas.coldstart'?: boolean | undefined; 'faas.execution'?: string | undefined; 'faas.id'?: string | undefined; 'faas.name'?: string | undefined; 'faas.version'?: string | undefined; 'file.accessed'?: string | number | undefined; 'file.attributes'?: string[] | undefined; 'file.code_signature.digest_algorithm'?: string | undefined; 'file.code_signature.exists'?: boolean | undefined; 'file.code_signature.signing_id'?: string | undefined; 'file.code_signature.status'?: string | undefined; 'file.code_signature.subject_name'?: string | undefined; 'file.code_signature.team_id'?: string | undefined; 'file.code_signature.timestamp'?: string | number | undefined; 'file.code_signature.trusted'?: boolean | undefined; 'file.code_signature.valid'?: boolean | undefined; 'file.created'?: string | number | undefined; 'file.ctime'?: string | number | undefined; 'file.device'?: string | undefined; 'file.directory'?: string | undefined; 'file.drive_letter'?: string | undefined; 'file.elf.architecture'?: string | undefined; 'file.elf.byte_order'?: string | undefined; 'file.elf.cpu_type'?: string | undefined; 'file.elf.creation_date'?: string | number | undefined; 'file.elf.exports'?: unknown[] | undefined; 'file.elf.header.abi_version'?: string | undefined; 'file.elf.header.class'?: string | undefined; 'file.elf.header.data'?: string | undefined; 'file.elf.header.entrypoint'?: string | number | undefined; 'file.elf.header.object_version'?: string | undefined; 'file.elf.header.os_abi'?: string | undefined; 'file.elf.header.type'?: string | undefined; 'file.elf.header.version'?: string | undefined; 'file.elf.imports'?: unknown[] | undefined; 'file.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'file.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'file.elf.shared_libraries'?: string[] | undefined; 'file.elf.telfhash'?: string | undefined; 'file.extension'?: string | undefined; 'file.fork_name'?: string | undefined; 'file.gid'?: string | undefined; 'file.group'?: string | undefined; 'file.hash.md5'?: string | undefined; 'file.hash.sha1'?: string | undefined; 'file.hash.sha256'?: string | undefined; 'file.hash.sha384'?: string | undefined; 'file.hash.sha512'?: string | undefined; 'file.hash.ssdeep'?: string | undefined; 'file.hash.tlsh'?: string | undefined; 'file.inode'?: string | undefined; 'file.mime_type'?: string | undefined; 'file.mode'?: string | undefined; 'file.mtime'?: string | number | undefined; 'file.name'?: string | undefined; 'file.owner'?: string | undefined; 'file.path'?: string | undefined; 'file.pe.architecture'?: string | undefined; 'file.pe.company'?: string | undefined; 'file.pe.description'?: string | undefined; 'file.pe.file_version'?: string | undefined; 'file.pe.imphash'?: string | undefined; 'file.pe.original_file_name'?: string | undefined; 'file.pe.pehash'?: string | undefined; 'file.pe.product'?: string | undefined; 'file.size'?: string | number | undefined; 'file.target_path'?: string | undefined; 'file.type'?: string | undefined; 'file.uid'?: string | undefined; 'file.x509.alternative_names'?: string[] | undefined; 'file.x509.issuer.common_name'?: string[] | undefined; 'file.x509.issuer.country'?: string[] | undefined; 'file.x509.issuer.distinguished_name'?: string | undefined; 'file.x509.issuer.locality'?: string[] | undefined; 'file.x509.issuer.organization'?: string[] | undefined; 'file.x509.issuer.organizational_unit'?: string[] | undefined; 'file.x509.issuer.state_or_province'?: string[] | undefined; 'file.x509.not_after'?: string | number | undefined; 'file.x509.not_before'?: string | number | undefined; 'file.x509.public_key_algorithm'?: string | undefined; 'file.x509.public_key_curve'?: string | undefined; 'file.x509.public_key_exponent'?: string | number | undefined; 'file.x509.public_key_size'?: string | number | undefined; 'file.x509.serial_number'?: string | undefined; 'file.x509.signature_algorithm'?: string | undefined; 'file.x509.subject.common_name'?: string[] | undefined; 'file.x509.subject.country'?: string[] | undefined; 'file.x509.subject.distinguished_name'?: string | undefined; 'file.x509.subject.locality'?: string[] | undefined; 'file.x509.subject.organization'?: string[] | undefined; 'file.x509.subject.organizational_unit'?: string[] | undefined; 'file.x509.subject.state_or_province'?: string[] | undefined; 'file.x509.version_number'?: string | undefined; 'group.domain'?: string | undefined; 'group.id'?: string | undefined; 'group.name'?: string | undefined; 'host.architecture'?: string | undefined; 'host.boot.id'?: string | undefined; 'host.cpu.usage'?: string | number | undefined; 'host.disk.read.bytes'?: string | number | undefined; 'host.disk.write.bytes'?: string | number | undefined; 'host.domain'?: string | undefined; 'host.geo.city_name'?: string | undefined; 'host.geo.continent_code'?: string | undefined; 'host.geo.continent_name'?: string | undefined; 'host.geo.country_iso_code'?: string | undefined; 'host.geo.country_name'?: string | undefined; 'host.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'host.geo.name'?: string | undefined; 'host.geo.postal_code'?: string | undefined; 'host.geo.region_iso_code'?: string | undefined; 'host.geo.region_name'?: string | undefined; 'host.geo.timezone'?: string | undefined; 'host.hostname'?: string | undefined; 'host.id'?: string | undefined; 'host.ip'?: string[] | undefined; 'host.mac'?: string[] | undefined; 'host.name'?: string | undefined; 'host.network.egress.bytes'?: string | number | undefined; 'host.network.egress.packets'?: string | number | undefined; 'host.network.ingress.bytes'?: string | number | undefined; 'host.network.ingress.packets'?: string | number | undefined; 'host.os.family'?: string | undefined; 'host.os.full'?: string | undefined; 'host.os.kernel'?: string | undefined; 'host.os.name'?: string | undefined; 'host.os.platform'?: string | undefined; 'host.os.type'?: string | undefined; 'host.os.version'?: string | undefined; 'host.pid_ns_ino'?: string | undefined; 'host.risk.calculated_level'?: string | undefined; 'host.risk.calculated_score'?: number | undefined; 'host.risk.calculated_score_norm'?: number | undefined; 'host.risk.static_level'?: string | undefined; 'host.risk.static_score'?: number | undefined; 'host.risk.static_score_norm'?: number | undefined; 'host.type'?: string | undefined; 'host.uptime'?: string | number | undefined; 'http.request.body.bytes'?: string | number | undefined; 'http.request.body.content'?: string | undefined; 'http.request.bytes'?: string | number | undefined; 'http.request.id'?: string | undefined; 'http.request.method'?: string | undefined; 'http.request.mime_type'?: string | undefined; 'http.request.referrer'?: string | undefined; 'http.response.body.bytes'?: string | number | undefined; 'http.response.body.content'?: string | undefined; 'http.response.bytes'?: string | number | undefined; 'http.response.mime_type'?: string | undefined; 'http.response.status_code'?: string | number | undefined; 'http.version'?: string | undefined; labels?: unknown; 'log.file.path'?: string | undefined; 'log.level'?: string | undefined; 'log.logger'?: string | undefined; 'log.origin.file.line'?: string | number | undefined; 'log.origin.file.name'?: string | undefined; 'log.origin.function'?: string | undefined; 'log.syslog'?: unknown; message?: string | undefined; 'network.application'?: string | undefined; 'network.bytes'?: string | number | undefined; 'network.community_id'?: string | undefined; 'network.direction'?: string | undefined; 'network.forwarded_ip'?: string | undefined; 'network.iana_number'?: string | undefined; 'network.inner'?: unknown; 'network.name'?: string | undefined; 'network.packets'?: string | number | undefined; 'network.protocol'?: string | undefined; 'network.transport'?: string | undefined; 'network.type'?: string | undefined; 'network.vlan.id'?: string | undefined; 'network.vlan.name'?: string | undefined; 'observer.egress'?: unknown; 'observer.geo.city_name'?: string | undefined; 'observer.geo.continent_code'?: string | undefined; 'observer.geo.continent_name'?: string | undefined; 'observer.geo.country_iso_code'?: string | undefined; 'observer.geo.country_name'?: string | undefined; 'observer.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'observer.geo.name'?: string | undefined; 'observer.geo.postal_code'?: string | undefined; 'observer.geo.region_iso_code'?: string | undefined; 'observer.geo.region_name'?: string | undefined; 'observer.geo.timezone'?: string | undefined; 'observer.hostname'?: string | undefined; 'observer.ingress'?: unknown; 'observer.ip'?: string[] | undefined; 'observer.mac'?: string[] | undefined; 'observer.name'?: string | undefined; 'observer.os.family'?: string | undefined; 'observer.os.full'?: string | undefined; 'observer.os.kernel'?: string | undefined; 'observer.os.name'?: string | undefined; 'observer.os.platform'?: string | undefined; 'observer.os.type'?: string | undefined; 'observer.os.version'?: string | undefined; 'observer.product'?: string | undefined; 'observer.serial_number'?: string | undefined; 'observer.type'?: string | undefined; 'observer.vendor'?: string | undefined; 'observer.version'?: string | undefined; 'orchestrator.api_version'?: string | undefined; 'orchestrator.cluster.id'?: string | undefined; 'orchestrator.cluster.name'?: string | undefined; 'orchestrator.cluster.url'?: string | undefined; 'orchestrator.cluster.version'?: string | undefined; 'orchestrator.namespace'?: string | undefined; 'orchestrator.organization'?: string | undefined; 'orchestrator.resource.id'?: string | undefined; 'orchestrator.resource.ip'?: string[] | undefined; 'orchestrator.resource.name'?: string | undefined; 'orchestrator.resource.parent.type'?: string | undefined; 'orchestrator.resource.type'?: string | undefined; 'orchestrator.type'?: string | undefined; 'organization.id'?: string | undefined; 'organization.name'?: string | undefined; 'package.architecture'?: string | undefined; 'package.build_version'?: string | undefined; 'package.checksum'?: string | undefined; 'package.description'?: string | undefined; 'package.install_scope'?: string | undefined; 'package.installed'?: string | number | undefined; 'package.license'?: string | undefined; 'package.name'?: string | undefined; 'package.path'?: string | undefined; 'package.reference'?: string | undefined; 'package.size'?: string | number | undefined; 'package.type'?: string | undefined; 'package.version'?: string | undefined; 'process.args'?: string[] | undefined; 'process.args_count'?: string | number | undefined; 'process.code_signature.digest_algorithm'?: string | undefined; 'process.code_signature.exists'?: boolean | undefined; 'process.code_signature.signing_id'?: string | undefined; 'process.code_signature.status'?: string | undefined; 'process.code_signature.subject_name'?: string | undefined; 'process.code_signature.team_id'?: string | undefined; 'process.code_signature.timestamp'?: string | number | undefined; 'process.code_signature.trusted'?: boolean | undefined; 'process.code_signature.valid'?: boolean | undefined; 'process.command_line'?: string | undefined; 'process.elf.architecture'?: string | undefined; 'process.elf.byte_order'?: string | undefined; 'process.elf.cpu_type'?: string | undefined; 'process.elf.creation_date'?: string | number | undefined; 'process.elf.exports'?: unknown[] | undefined; 'process.elf.header.abi_version'?: string | undefined; 'process.elf.header.class'?: string | undefined; 'process.elf.header.data'?: string | undefined; 'process.elf.header.entrypoint'?: string | number | undefined; 'process.elf.header.object_version'?: string | undefined; 'process.elf.header.os_abi'?: string | undefined; 'process.elf.header.type'?: string | undefined; 'process.elf.header.version'?: string | undefined; 'process.elf.imports'?: unknown[] | undefined; 'process.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'process.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'process.elf.shared_libraries'?: string[] | undefined; 'process.elf.telfhash'?: string | undefined; 'process.end'?: string | number | undefined; 'process.entity_id'?: string | undefined; 'process.entry_leader.args'?: string[] | undefined; 'process.entry_leader.args_count'?: string | number | undefined; 'process.entry_leader.attested_groups.name'?: string | undefined; 'process.entry_leader.attested_user.id'?: string | undefined; 'process.entry_leader.attested_user.name'?: string | undefined; 'process.entry_leader.command_line'?: string | undefined; 'process.entry_leader.entity_id'?: string | undefined; 'process.entry_leader.entry_meta.source.ip'?: string | undefined; 'process.entry_leader.entry_meta.type'?: string | undefined; 'process.entry_leader.executable'?: string | undefined; 'process.entry_leader.group.id'?: string | undefined; 'process.entry_leader.group.name'?: string | undefined; 'process.entry_leader.interactive'?: boolean | undefined; 'process.entry_leader.name'?: string | undefined; 'process.entry_leader.parent.entity_id'?: string | undefined; 'process.entry_leader.parent.pid'?: string | number | undefined; 'process.entry_leader.parent.session_leader.entity_id'?: string | undefined; 'process.entry_leader.parent.session_leader.pid'?: string | number | undefined; 'process.entry_leader.parent.session_leader.start'?: string | number | undefined; 'process.entry_leader.parent.start'?: string | number | undefined; 'process.entry_leader.pid'?: string | number | undefined; 'process.entry_leader.real_group.id'?: string | undefined; 'process.entry_leader.real_group.name'?: string | undefined; 'process.entry_leader.real_user.id'?: string | undefined; 'process.entry_leader.real_user.name'?: string | undefined; 'process.entry_leader.same_as_process'?: boolean | undefined; 'process.entry_leader.saved_group.id'?: string | undefined; 'process.entry_leader.saved_group.name'?: string | undefined; 'process.entry_leader.saved_user.id'?: string | undefined; 'process.entry_leader.saved_user.name'?: string | undefined; 'process.entry_leader.start'?: string | number | undefined; 'process.entry_leader.supplemental_groups.id'?: string | undefined; 'process.entry_leader.supplemental_groups.name'?: string | undefined; 'process.entry_leader.tty'?: unknown; 'process.entry_leader.user.id'?: string | undefined; 'process.entry_leader.user.name'?: string | undefined; 'process.entry_leader.working_directory'?: string | undefined; 'process.env_vars'?: string[] | undefined; 'process.executable'?: string | undefined; 'process.exit_code'?: string | number | undefined; 'process.group_leader.args'?: string[] | undefined; 'process.group_leader.args_count'?: string | number | undefined; 'process.group_leader.command_line'?: string | undefined; 'process.group_leader.entity_id'?: string | undefined; 'process.group_leader.executable'?: string | undefined; 'process.group_leader.group.id'?: string | undefined; 'process.group_leader.group.name'?: string | undefined; 'process.group_leader.interactive'?: boolean | undefined; 'process.group_leader.name'?: string | undefined; 'process.group_leader.pid'?: string | number | undefined; 'process.group_leader.real_group.id'?: string | undefined; 'process.group_leader.real_group.name'?: string | undefined; 'process.group_leader.real_user.id'?: string | undefined; 'process.group_leader.real_user.name'?: string | undefined; 'process.group_leader.same_as_process'?: boolean | undefined; 'process.group_leader.saved_group.id'?: string | undefined; 'process.group_leader.saved_group.name'?: string | undefined; 'process.group_leader.saved_user.id'?: string | undefined; 'process.group_leader.saved_user.name'?: string | undefined; 'process.group_leader.start'?: string | number | undefined; 'process.group_leader.supplemental_groups.id'?: string | undefined; 'process.group_leader.supplemental_groups.name'?: string | undefined; 'process.group_leader.tty'?: unknown; 'process.group_leader.user.id'?: string | undefined; 'process.group_leader.user.name'?: string | undefined; 'process.group_leader.working_directory'?: string | undefined; 'process.hash.md5'?: string | undefined; 'process.hash.sha1'?: string | undefined; 'process.hash.sha256'?: string | undefined; 'process.hash.sha384'?: string | undefined; 'process.hash.sha512'?: string | undefined; 'process.hash.ssdeep'?: string | undefined; 'process.hash.tlsh'?: string | undefined; 'process.interactive'?: boolean | undefined; 'process.io'?: unknown; 'process.name'?: string | undefined; 'process.parent.args'?: string[] | undefined; 'process.parent.args_count'?: string | number | undefined; 'process.parent.code_signature.digest_algorithm'?: string | undefined; 'process.parent.code_signature.exists'?: boolean | undefined; 'process.parent.code_signature.signing_id'?: string | undefined; 'process.parent.code_signature.status'?: string | undefined; 'process.parent.code_signature.subject_name'?: string | undefined; 'process.parent.code_signature.team_id'?: string | undefined; 'process.parent.code_signature.timestamp'?: string | number | undefined; 'process.parent.code_signature.trusted'?: boolean | undefined; 'process.parent.code_signature.valid'?: boolean | undefined; 'process.parent.command_line'?: string | undefined; 'process.parent.elf.architecture'?: string | undefined; 'process.parent.elf.byte_order'?: string | undefined; 'process.parent.elf.cpu_type'?: string | undefined; 'process.parent.elf.creation_date'?: string | number | undefined; 'process.parent.elf.exports'?: unknown[] | undefined; 'process.parent.elf.header.abi_version'?: string | undefined; 'process.parent.elf.header.class'?: string | undefined; 'process.parent.elf.header.data'?: string | undefined; 'process.parent.elf.header.entrypoint'?: string | number | undefined; 'process.parent.elf.header.object_version'?: string | undefined; 'process.parent.elf.header.os_abi'?: string | undefined; 'process.parent.elf.header.type'?: string | undefined; 'process.parent.elf.header.version'?: string | undefined; 'process.parent.elf.imports'?: unknown[] | undefined; 'process.parent.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'process.parent.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'process.parent.elf.shared_libraries'?: string[] | undefined; 'process.parent.elf.telfhash'?: string | undefined; 'process.parent.end'?: string | number | undefined; 'process.parent.entity_id'?: string | undefined; 'process.parent.executable'?: string | undefined; 'process.parent.exit_code'?: string | number | undefined; 'process.parent.group.id'?: string | undefined; 'process.parent.group.name'?: string | undefined; 'process.parent.group_leader.entity_id'?: string | undefined; 'process.parent.group_leader.pid'?: string | number | undefined; 'process.parent.group_leader.start'?: string | number | undefined; 'process.parent.hash.md5'?: string | undefined; 'process.parent.hash.sha1'?: string | undefined; 'process.parent.hash.sha256'?: string | undefined; 'process.parent.hash.sha384'?: string | undefined; 'process.parent.hash.sha512'?: string | undefined; 'process.parent.hash.ssdeep'?: string | undefined; 'process.parent.hash.tlsh'?: string | undefined; 'process.parent.interactive'?: boolean | undefined; 'process.parent.name'?: string | undefined; 'process.parent.pe.architecture'?: string | undefined; 'process.parent.pe.company'?: string | undefined; 'process.parent.pe.description'?: string | undefined; 'process.parent.pe.file_version'?: string | undefined; 'process.parent.pe.imphash'?: string | undefined; 'process.parent.pe.original_file_name'?: string | undefined; 'process.parent.pe.pehash'?: string | undefined; 'process.parent.pe.product'?: string | undefined; 'process.parent.pgid'?: string | number | undefined; 'process.parent.pid'?: string | number | undefined; 'process.parent.real_group.id'?: string | undefined; 'process.parent.real_group.name'?: string | undefined; 'process.parent.real_user.id'?: string | undefined; 'process.parent.real_user.name'?: string | undefined; 'process.parent.saved_group.id'?: string | undefined; 'process.parent.saved_group.name'?: string | undefined; 'process.parent.saved_user.id'?: string | undefined; 'process.parent.saved_user.name'?: string | undefined; 'process.parent.start'?: string | number | undefined; 'process.parent.supplemental_groups.id'?: string | undefined; 'process.parent.supplemental_groups.name'?: string | undefined; 'process.parent.thread.id'?: string | number | undefined; 'process.parent.thread.name'?: string | undefined; 'process.parent.title'?: string | undefined; 'process.parent.tty'?: unknown; 'process.parent.uptime'?: string | number | undefined; 'process.parent.user.id'?: string | undefined; 'process.parent.user.name'?: string | undefined; 'process.parent.working_directory'?: string | undefined; 'process.pe.architecture'?: string | undefined; 'process.pe.company'?: string | undefined; 'process.pe.description'?: string | undefined; 'process.pe.file_version'?: string | undefined; 'process.pe.imphash'?: string | undefined; 'process.pe.original_file_name'?: string | undefined; 'process.pe.pehash'?: string | undefined; 'process.pe.product'?: string | undefined; 'process.pgid'?: string | number | undefined; 'process.pid'?: string | number | undefined; 'process.previous.args'?: string[] | undefined; 'process.previous.args_count'?: string | number | undefined; 'process.previous.executable'?: string | undefined; 'process.real_group.id'?: string | undefined; 'process.real_group.name'?: string | undefined; 'process.real_user.id'?: string | undefined; 'process.real_user.name'?: string | undefined; 'process.saved_group.id'?: string | undefined; 'process.saved_group.name'?: string | undefined; 'process.saved_user.id'?: string | undefined; 'process.saved_user.name'?: string | undefined; 'process.session_leader.args'?: string[] | undefined; 'process.session_leader.args_count'?: string | number | undefined; 'process.session_leader.command_line'?: string | undefined; 'process.session_leader.entity_id'?: string | undefined; 'process.session_leader.executable'?: string | undefined; 'process.session_leader.group.id'?: string | undefined; 'process.session_leader.group.name'?: string | undefined; 'process.session_leader.interactive'?: boolean | undefined; 'process.session_leader.name'?: string | undefined; 'process.session_leader.parent.entity_id'?: string | undefined; 'process.session_leader.parent.pid'?: string | number | undefined; 'process.session_leader.parent.session_leader.entity_id'?: string | undefined; 'process.session_leader.parent.session_leader.pid'?: string | number | undefined; 'process.session_leader.parent.session_leader.start'?: string | number | undefined; 'process.session_leader.parent.start'?: string | number | undefined; 'process.session_leader.pid'?: string | number | undefined; 'process.session_leader.real_group.id'?: string | undefined; 'process.session_leader.real_group.name'?: string | undefined; 'process.session_leader.real_user.id'?: string | undefined; 'process.session_leader.real_user.name'?: string | undefined; 'process.session_leader.same_as_process'?: boolean | undefined; 'process.session_leader.saved_group.id'?: string | undefined; 'process.session_leader.saved_group.name'?: string | undefined; 'process.session_leader.saved_user.id'?: string | undefined; 'process.session_leader.saved_user.name'?: string | undefined; 'process.session_leader.start'?: string | number | undefined; 'process.session_leader.supplemental_groups.id'?: string | undefined; 'process.session_leader.supplemental_groups.name'?: string | undefined; 'process.session_leader.tty'?: unknown; 'process.session_leader.user.id'?: string | undefined; 'process.session_leader.user.name'?: string | undefined; 'process.session_leader.working_directory'?: string | undefined; 'process.start'?: string | number | undefined; 'process.supplemental_groups.id'?: string | undefined; 'process.supplemental_groups.name'?: string | undefined; 'process.thread.id'?: string | number | undefined; 'process.thread.name'?: string | undefined; 'process.title'?: string | undefined; 'process.tty'?: unknown; 'process.uptime'?: string | number | undefined; 'process.user.id'?: string | undefined; 'process.user.name'?: string | undefined; 'process.working_directory'?: string | undefined; 'registry.data.bytes'?: string | undefined; 'registry.data.strings'?: string[] | undefined; 'registry.data.type'?: string | undefined; 'registry.hive'?: string | undefined; 'registry.key'?: string | undefined; 'registry.path'?: string | undefined; 'registry.value'?: string | undefined; 'related.hash'?: string[] | undefined; 'related.hosts'?: string[] | undefined; 'related.ip'?: string[] | undefined; 'related.user'?: string[] | undefined; 'rule.author'?: string[] | undefined; 'rule.category'?: string | undefined; 'rule.description'?: string | undefined; 'rule.id'?: string | undefined; 'rule.license'?: string | undefined; 'rule.name'?: string | undefined; 'rule.reference'?: string | undefined; 'rule.ruleset'?: string | undefined; 'rule.uuid'?: string | undefined; 'rule.version'?: string | undefined; 'server.address'?: string | undefined; 'server.as.number'?: string | number | undefined; 'server.as.organization.name'?: string | undefined; 'server.bytes'?: string | number | undefined; 'server.domain'?: string | undefined; 'server.geo.city_name'?: string | undefined; 'server.geo.continent_code'?: string | undefined; 'server.geo.continent_name'?: string | undefined; 'server.geo.country_iso_code'?: string | undefined; 'server.geo.country_name'?: string | undefined; 'server.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'server.geo.name'?: string | undefined; 'server.geo.postal_code'?: string | undefined; 'server.geo.region_iso_code'?: string | undefined; 'server.geo.region_name'?: string | undefined; 'server.geo.timezone'?: string | undefined; 'server.ip'?: string | undefined; 'server.mac'?: string | undefined; 'server.nat.ip'?: string | undefined; 'server.nat.port'?: string | number | undefined; 'server.packets'?: string | number | undefined; 'server.port'?: string | number | undefined; 'server.registered_domain'?: string | undefined; 'server.subdomain'?: string | undefined; 'server.top_level_domain'?: string | undefined; 'server.user.domain'?: string | undefined; 'server.user.email'?: string | undefined; 'server.user.full_name'?: string | undefined; 'server.user.group.domain'?: string | undefined; 'server.user.group.id'?: string | undefined; 'server.user.group.name'?: string | undefined; 'server.user.hash'?: string | undefined; 'server.user.id'?: string | undefined; 'server.user.name'?: string | undefined; 'server.user.roles'?: string[] | undefined; 'service.address'?: string | undefined; 'service.environment'?: string | undefined; 'service.ephemeral_id'?: string | undefined; 'service.id'?: string | undefined; 'service.name'?: string | undefined; 'service.node.name'?: string | undefined; 'service.node.role'?: string | undefined; 'service.node.roles'?: string[] | undefined; 'service.origin.address'?: string | undefined; 'service.origin.environment'?: string | undefined; 'service.origin.ephemeral_id'?: string | undefined; 'service.origin.id'?: string | undefined; 'service.origin.name'?: string | undefined; 'service.origin.node.name'?: string | undefined; 'service.origin.node.role'?: string | undefined; 'service.origin.node.roles'?: string[] | undefined; 'service.origin.state'?: string | undefined; 'service.origin.type'?: string | undefined; 'service.origin.version'?: string | undefined; 'service.state'?: string | undefined; 'service.target.address'?: string | undefined; 'service.target.environment'?: string | undefined; 'service.target.ephemeral_id'?: string | undefined; 'service.target.id'?: string | undefined; 'service.target.name'?: string | undefined; 'service.target.node.name'?: string | undefined; 'service.target.node.role'?: string | undefined; 'service.target.node.roles'?: string[] | undefined; 'service.target.state'?: string | undefined; 'service.target.type'?: string | undefined; 'service.target.version'?: string | undefined; 'service.type'?: string | undefined; 'service.version'?: string | undefined; 'source.address'?: string | undefined; 'source.as.number'?: string | number | undefined; 'source.as.organization.name'?: string | undefined; 'source.bytes'?: string | number | undefined; 'source.domain'?: string | undefined; 'source.geo.city_name'?: string | undefined; 'source.geo.continent_code'?: string | undefined; 'source.geo.continent_name'?: string | undefined; 'source.geo.country_iso_code'?: string | undefined; 'source.geo.country_name'?: string | undefined; 'source.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'source.geo.name'?: string | undefined; 'source.geo.postal_code'?: string | undefined; 'source.geo.region_iso_code'?: string | undefined; 'source.geo.region_name'?: string | undefined; 'source.geo.timezone'?: string | undefined; 'source.ip'?: string | undefined; 'source.mac'?: string | undefined; 'source.nat.ip'?: string | undefined; 'source.nat.port'?: string | number | undefined; 'source.packets'?: string | number | undefined; 'source.port'?: string | number | undefined; 'source.registered_domain'?: string | undefined; 'source.subdomain'?: string | undefined; 'source.top_level_domain'?: string | undefined; 'source.user.domain'?: string | undefined; 'source.user.email'?: string | undefined; 'source.user.full_name'?: string | undefined; 'source.user.group.domain'?: string | undefined; 'source.user.group.id'?: string | undefined; 'source.user.group.name'?: string | undefined; 'source.user.hash'?: string | undefined; 'source.user.id'?: string | undefined; 'source.user.name'?: string | undefined; 'source.user.roles'?: string[] | undefined; 'span.id'?: string | undefined; tags?: string[] | undefined; 'threat.enrichments'?: { indicator?: unknown; 'matched.atomic'?: string | undefined; 'matched.field'?: string | undefined; 'matched.id'?: string | undefined; 'matched.index'?: string | undefined; 'matched.occurred'?: string | number | undefined; 'matched.type'?: string | undefined; }[] | undefined; 'threat.feed.dashboard_id'?: string | undefined; 'threat.feed.description'?: string | undefined; 'threat.feed.name'?: string | undefined; 'threat.feed.reference'?: string | undefined; 'threat.framework'?: string | undefined; 'threat.group.alias'?: string[] | undefined; 'threat.group.id'?: string | undefined; 'threat.group.name'?: string | undefined; 'threat.group.reference'?: string | undefined; 'threat.indicator.as.number'?: string | number | undefined; 'threat.indicator.as.organization.name'?: string | undefined; 'threat.indicator.confidence'?: string | undefined; 'threat.indicator.description'?: string | undefined; 'threat.indicator.email.address'?: string | undefined; 'threat.indicator.file.accessed'?: string | number | undefined; 'threat.indicator.file.attributes'?: string[] | undefined; 'threat.indicator.file.code_signature.digest_algorithm'?: string | undefined; 'threat.indicator.file.code_signature.exists'?: boolean | undefined; 'threat.indicator.file.code_signature.signing_id'?: string | undefined; 'threat.indicator.file.code_signature.status'?: string | undefined; 'threat.indicator.file.code_signature.subject_name'?: string | undefined; 'threat.indicator.file.code_signature.team_id'?: string | undefined; 'threat.indicator.file.code_signature.timestamp'?: string | number | undefined; 'threat.indicator.file.code_signature.trusted'?: boolean | undefined; 'threat.indicator.file.code_signature.valid'?: boolean | undefined; 'threat.indicator.file.created'?: string | number | undefined; 'threat.indicator.file.ctime'?: string | number | undefined; 'threat.indicator.file.device'?: string | undefined; 'threat.indicator.file.directory'?: string | undefined; 'threat.indicator.file.drive_letter'?: string | undefined; 'threat.indicator.file.elf.architecture'?: string | undefined; 'threat.indicator.file.elf.byte_order'?: string | undefined; 'threat.indicator.file.elf.cpu_type'?: string | undefined; 'threat.indicator.file.elf.creation_date'?: string | number | undefined; 'threat.indicator.file.elf.exports'?: unknown[] | undefined; 'threat.indicator.file.elf.header.abi_version'?: string | undefined; 'threat.indicator.file.elf.header.class'?: string | undefined; 'threat.indicator.file.elf.header.data'?: string | undefined; 'threat.indicator.file.elf.header.entrypoint'?: string | number | undefined; 'threat.indicator.file.elf.header.object_version'?: string | undefined; 'threat.indicator.file.elf.header.os_abi'?: string | undefined; 'threat.indicator.file.elf.header.type'?: string | undefined; 'threat.indicator.file.elf.header.version'?: string | undefined; 'threat.indicator.file.elf.imports'?: unknown[] | undefined; 'threat.indicator.file.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'threat.indicator.file.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'threat.indicator.file.elf.shared_libraries'?: string[] | undefined; 'threat.indicator.file.elf.telfhash'?: string | undefined; 'threat.indicator.file.extension'?: string | undefined; 'threat.indicator.file.fork_name'?: string | undefined; 'threat.indicator.file.gid'?: string | undefined; 'threat.indicator.file.group'?: string | undefined; 'threat.indicator.file.hash.md5'?: string | undefined; 'threat.indicator.file.hash.sha1'?: string | undefined; 'threat.indicator.file.hash.sha256'?: string | undefined; 'threat.indicator.file.hash.sha384'?: string | undefined; 'threat.indicator.file.hash.sha512'?: string | undefined; 'threat.indicator.file.hash.ssdeep'?: string | undefined; 'threat.indicator.file.hash.tlsh'?: string | undefined; 'threat.indicator.file.inode'?: string | undefined; 'threat.indicator.file.mime_type'?: string | undefined; 'threat.indicator.file.mode'?: string | undefined; 'threat.indicator.file.mtime'?: string | number | undefined; 'threat.indicator.file.name'?: string | undefined; 'threat.indicator.file.owner'?: string | undefined; 'threat.indicator.file.path'?: string | undefined; 'threat.indicator.file.pe.architecture'?: string | undefined; 'threat.indicator.file.pe.company'?: string | undefined; 'threat.indicator.file.pe.description'?: string | undefined; 'threat.indicator.file.pe.file_version'?: string | undefined; 'threat.indicator.file.pe.imphash'?: string | undefined; 'threat.indicator.file.pe.original_file_name'?: string | undefined; 'threat.indicator.file.pe.pehash'?: string | undefined; 'threat.indicator.file.pe.product'?: string | undefined; 'threat.indicator.file.size'?: string | number | undefined; 'threat.indicator.file.target_path'?: string | undefined; 'threat.indicator.file.type'?: string | undefined; 'threat.indicator.file.uid'?: string | undefined; 'threat.indicator.file.x509.alternative_names'?: string[] | undefined; 'threat.indicator.file.x509.issuer.common_name'?: string[] | undefined; 'threat.indicator.file.x509.issuer.country'?: string[] | undefined; 'threat.indicator.file.x509.issuer.distinguished_name'?: string | undefined; 'threat.indicator.file.x509.issuer.locality'?: string[] | undefined; 'threat.indicator.file.x509.issuer.organization'?: string[] | undefined; 'threat.indicator.file.x509.issuer.organizational_unit'?: string[] | undefined; 'threat.indicator.file.x509.issuer.state_or_province'?: string[] | undefined; 'threat.indicator.file.x509.not_after'?: string | number | undefined; 'threat.indicator.file.x509.not_before'?: string | number | undefined; 'threat.indicator.file.x509.public_key_algorithm'?: string | undefined; 'threat.indicator.file.x509.public_key_curve'?: string | undefined; 'threat.indicator.file.x509.public_key_exponent'?: string | number | undefined; 'threat.indicator.file.x509.public_key_size'?: string | number | undefined; 'threat.indicator.file.x509.serial_number'?: string | undefined; 'threat.indicator.file.x509.signature_algorithm'?: string | undefined; 'threat.indicator.file.x509.subject.common_name'?: string[] | undefined; 'threat.indicator.file.x509.subject.country'?: string[] | undefined; 'threat.indicator.file.x509.subject.distinguished_name'?: string | undefined; 'threat.indicator.file.x509.subject.locality'?: string[] | undefined; 'threat.indicator.file.x509.subject.organization'?: string[] | undefined; 'threat.indicator.file.x509.subject.organizational_unit'?: string[] | undefined; 'threat.indicator.file.x509.subject.state_or_province'?: string[] | undefined; 'threat.indicator.file.x509.version_number'?: string | undefined; 'threat.indicator.first_seen'?: string | number | undefined; 'threat.indicator.geo.city_name'?: string | undefined; 'threat.indicator.geo.continent_code'?: string | undefined; 'threat.indicator.geo.continent_name'?: string | undefined; 'threat.indicator.geo.country_iso_code'?: string | undefined; 'threat.indicator.geo.country_name'?: string | undefined; 'threat.indicator.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'threat.indicator.geo.name'?: string | undefined; 'threat.indicator.geo.postal_code'?: string | undefined; 'threat.indicator.geo.region_iso_code'?: string | undefined; 'threat.indicator.geo.region_name'?: string | undefined; 'threat.indicator.geo.timezone'?: string | undefined; 'threat.indicator.ip'?: string | undefined; 'threat.indicator.last_seen'?: string | number | undefined; 'threat.indicator.marking.tlp'?: string | undefined; 'threat.indicator.marking.tlp_version'?: string | undefined; 'threat.indicator.modified_at'?: string | number | undefined; 'threat.indicator.port'?: string | number | undefined; 'threat.indicator.provider'?: string | undefined; 'threat.indicator.reference'?: string | undefined; 'threat.indicator.registry.data.bytes'?: string | undefined; 'threat.indicator.registry.data.strings'?: string[] | undefined; 'threat.indicator.registry.data.type'?: string | undefined; 'threat.indicator.registry.hive'?: string | undefined; 'threat.indicator.registry.key'?: string | undefined; 'threat.indicator.registry.path'?: string | undefined; 'threat.indicator.registry.value'?: string | undefined; 'threat.indicator.scanner_stats'?: string | number | undefined; 'threat.indicator.sightings'?: string | number | undefined; 'threat.indicator.type'?: string | undefined; 'threat.indicator.url.domain'?: string | undefined; 'threat.indicator.url.extension'?: string | undefined; 'threat.indicator.url.fragment'?: string | undefined; 'threat.indicator.url.full'?: string | undefined; 'threat.indicator.url.original'?: string | undefined; 'threat.indicator.url.password'?: string | undefined; 'threat.indicator.url.path'?: string | undefined; 'threat.indicator.url.port'?: string | number | undefined; 'threat.indicator.url.query'?: string | undefined; 'threat.indicator.url.registered_domain'?: string | undefined; 'threat.indicator.url.scheme'?: string | undefined; 'threat.indicator.url.subdomain'?: string | undefined; 'threat.indicator.url.top_level_domain'?: string | undefined; 'threat.indicator.url.username'?: string | undefined; 'threat.indicator.x509.alternative_names'?: string[] | undefined; 'threat.indicator.x509.issuer.common_name'?: string[] | undefined; 'threat.indicator.x509.issuer.country'?: string[] | undefined; 'threat.indicator.x509.issuer.distinguished_name'?: string | undefined; 'threat.indicator.x509.issuer.locality'?: string[] | undefined; 'threat.indicator.x509.issuer.organization'?: string[] | undefined; 'threat.indicator.x509.issuer.organizational_unit'?: string[] | undefined; 'threat.indicator.x509.issuer.state_or_province'?: string[] | undefined; 'threat.indicator.x509.not_after'?: string | number | undefined; 'threat.indicator.x509.not_before'?: string | number | undefined; 'threat.indicator.x509.public_key_algorithm'?: string | undefined; 'threat.indicator.x509.public_key_curve'?: string | undefined; 'threat.indicator.x509.public_key_exponent'?: string | number | undefined; 'threat.indicator.x509.public_key_size'?: string | number | undefined; 'threat.indicator.x509.serial_number'?: string | undefined; 'threat.indicator.x509.signature_algorithm'?: string | undefined; 'threat.indicator.x509.subject.common_name'?: string[] | undefined; 'threat.indicator.x509.subject.country'?: string[] | undefined; 'threat.indicator.x509.subject.distinguished_name'?: string | undefined; 'threat.indicator.x509.subject.locality'?: string[] | undefined; 'threat.indicator.x509.subject.organization'?: string[] | undefined; 'threat.indicator.x509.subject.organizational_unit'?: string[] | undefined; 'threat.indicator.x509.subject.state_or_province'?: string[] | undefined; 'threat.indicator.x509.version_number'?: string | undefined; 'threat.software.alias'?: string[] | undefined; 'threat.software.id'?: string | undefined; 'threat.software.name'?: string | undefined; 'threat.software.platforms'?: string[] | undefined; 'threat.software.reference'?: string | undefined; 'threat.software.type'?: string | undefined; 'threat.tactic.id'?: string[] | undefined; 'threat.tactic.name'?: string[] | undefined; 'threat.tactic.reference'?: string[] | undefined; 'threat.technique.id'?: string[] | undefined; 'threat.technique.name'?: string[] | undefined; 'threat.technique.reference'?: string[] | undefined; 'threat.technique.subtechnique.id'?: string[] | undefined; 'threat.technique.subtechnique.name'?: string[] | undefined; 'threat.technique.subtechnique.reference'?: string[] | undefined; 'tls.cipher'?: string | undefined; 'tls.client.certificate'?: string | undefined; 'tls.client.certificate_chain'?: string[] | undefined; 'tls.client.hash.md5'?: string | undefined; 'tls.client.hash.sha1'?: string | undefined; 'tls.client.hash.sha256'?: string | undefined; 'tls.client.issuer'?: string | undefined; 'tls.client.ja3'?: string | undefined; 'tls.client.not_after'?: string | number | undefined; 'tls.client.not_before'?: string | number | undefined; 'tls.client.server_name'?: string | undefined; 'tls.client.subject'?: string | undefined; 'tls.client.supported_ciphers'?: string[] | undefined; 'tls.client.x509.alternative_names'?: string[] | undefined; 'tls.client.x509.issuer.common_name'?: string[] | undefined; 'tls.client.x509.issuer.country'?: string[] | undefined; 'tls.client.x509.issuer.distinguished_name'?: string | undefined; 'tls.client.x509.issuer.locality'?: string[] | undefined; 'tls.client.x509.issuer.organization'?: string[] | undefined; 'tls.client.x509.issuer.organizational_unit'?: string[] | undefined; 'tls.client.x509.issuer.state_or_province'?: string[] | undefined; 'tls.client.x509.not_after'?: string | number | undefined; 'tls.client.x509.not_before'?: string | number | undefined; 'tls.client.x509.public_key_algorithm'?: string | undefined; 'tls.client.x509.public_key_curve'?: string | undefined; 'tls.client.x509.public_key_exponent'?: string | number | undefined; 'tls.client.x509.public_key_size'?: string | number | undefined; 'tls.client.x509.serial_number'?: string | undefined; 'tls.client.x509.signature_algorithm'?: string | undefined; 'tls.client.x509.subject.common_name'?: string[] | undefined; 'tls.client.x509.subject.country'?: string[] | undefined; 'tls.client.x509.subject.distinguished_name'?: string | undefined; 'tls.client.x509.subject.locality'?: string[] | undefined; 'tls.client.x509.subject.organization'?: string[] | undefined; 'tls.client.x509.subject.organizational_unit'?: string[] | undefined; 'tls.client.x509.subject.state_or_province'?: string[] | undefined; 'tls.client.x509.version_number'?: string | undefined; 'tls.curve'?: string | undefined; 'tls.established'?: boolean | undefined; 'tls.next_protocol'?: string | undefined; 'tls.resumed'?: boolean | undefined; 'tls.server.certificate'?: string | undefined; 'tls.server.certificate_chain'?: string[] | undefined; 'tls.server.hash.md5'?: string | undefined; 'tls.server.hash.sha1'?: string | undefined; 'tls.server.hash.sha256'?: string | undefined; 'tls.server.issuer'?: string | undefined; 'tls.server.ja3s'?: string | undefined; 'tls.server.not_after'?: string | number | undefined; 'tls.server.not_before'?: string | number | undefined; 'tls.server.subject'?: string | undefined; 'tls.server.x509.alternative_names'?: string[] | undefined; 'tls.server.x509.issuer.common_name'?: string[] | undefined; 'tls.server.x509.issuer.country'?: string[] | undefined; 'tls.server.x509.issuer.distinguished_name'?: string | undefined; 'tls.server.x509.issuer.locality'?: string[] | undefined; 'tls.server.x509.issuer.organization'?: string[] | undefined; 'tls.server.x509.issuer.organizational_unit'?: string[] | undefined; 'tls.server.x509.issuer.state_or_province'?: string[] | undefined; 'tls.server.x509.not_after'?: string | number | undefined; 'tls.server.x509.not_before'?: string | number | undefined; 'tls.server.x509.public_key_algorithm'?: string | undefined; 'tls.server.x509.public_key_curve'?: string | undefined; 'tls.server.x509.public_key_exponent'?: string | number | undefined; 'tls.server.x509.public_key_size'?: string | number | undefined; 'tls.server.x509.serial_number'?: string | undefined; 'tls.server.x509.signature_algorithm'?: string | undefined; 'tls.server.x509.subject.common_name'?: string[] | undefined; 'tls.server.x509.subject.country'?: string[] | undefined; 'tls.server.x509.subject.distinguished_name'?: string | undefined; 'tls.server.x509.subject.locality'?: string[] | undefined; 'tls.server.x509.subject.organization'?: string[] | undefined; 'tls.server.x509.subject.organizational_unit'?: string[] | undefined; 'tls.server.x509.subject.state_or_province'?: string[] | undefined; 'tls.server.x509.version_number'?: string | undefined; 'tls.version'?: string | undefined; 'tls.version_protocol'?: string | undefined; 'trace.id'?: string | undefined; 'transaction.id'?: string | undefined; 'url.domain'?: string | undefined; 'url.extension'?: string | undefined; 'url.fragment'?: string | undefined; 'url.full'?: string | undefined; 'url.original'?: string | undefined; 'url.password'?: string | undefined; 'url.path'?: string | undefined; 'url.port'?: string | number | undefined; 'url.query'?: string | undefined; 'url.registered_domain'?: string | undefined; 'url.scheme'?: string | undefined; 'url.subdomain'?: string | undefined; 'url.top_level_domain'?: string | undefined; 'url.username'?: string | undefined; 'user.changes.domain'?: string | undefined; 'user.changes.email'?: string | undefined; 'user.changes.full_name'?: string | undefined; 'user.changes.group.domain'?: string | undefined; 'user.changes.group.id'?: string | undefined; 'user.changes.group.name'?: string | undefined; 'user.changes.hash'?: string | undefined; 'user.changes.id'?: string | undefined; 'user.changes.name'?: string | undefined; 'user.changes.roles'?: string[] | undefined; 'user.domain'?: string | undefined; 'user.effective.domain'?: string | undefined; 'user.effective.email'?: string | undefined; 'user.effective.full_name'?: string | undefined; 'user.effective.group.domain'?: string | undefined; 'user.effective.group.id'?: string | undefined; 'user.effective.group.name'?: string | undefined; 'user.effective.hash'?: string | undefined; 'user.effective.id'?: string | undefined; 'user.effective.name'?: string | undefined; 'user.effective.roles'?: string[] | undefined; 'user.email'?: string | undefined; 'user.full_name'?: string | undefined; 'user.group.domain'?: string | undefined; 'user.group.id'?: string | undefined; 'user.group.name'?: string | undefined; 'user.hash'?: string | undefined; 'user.id'?: string | undefined; 'user.name'?: string | undefined; 'user.risk.calculated_level'?: string | undefined; 'user.risk.calculated_score'?: number | undefined; 'user.risk.calculated_score_norm'?: number | undefined; 'user.risk.static_level'?: string | undefined; 'user.risk.static_score'?: number | undefined; 'user.risk.static_score_norm'?: number | undefined; 'user.roles'?: string[] | undefined; 'user.target.domain'?: string | undefined; 'user.target.email'?: string | undefined; 'user.target.full_name'?: string | undefined; 'user.target.group.domain'?: string | undefined; 'user.target.group.id'?: string | undefined; 'user.target.group.name'?: string | undefined; 'user.target.hash'?: string | undefined; 'user.target.id'?: string | undefined; 'user.target.name'?: string | undefined; 'user.target.roles'?: string[] | undefined; 'user_agent.device.name'?: string | undefined; 'user_agent.name'?: string | undefined; 'user_agent.original'?: string | undefined; 'user_agent.os.family'?: string | undefined; 'user_agent.os.full'?: string | undefined; 'user_agent.os.kernel'?: string | undefined; 'user_agent.os.name'?: string | undefined; 'user_agent.os.platform'?: string | undefined; 'user_agent.os.type'?: string | undefined; 'user_agent.os.version'?: string | undefined; 'user_agent.version'?: string | undefined; 'vulnerability.category'?: string[] | undefined; 'vulnerability.classification'?: string | undefined; 'vulnerability.description'?: string | undefined; 'vulnerability.enumeration'?: string | undefined; 'vulnerability.id'?: string | undefined; 'vulnerability.reference'?: string | undefined; 'vulnerability.report_id'?: string | undefined; 'vulnerability.scanner.vendor'?: string | undefined; 'vulnerability.score.base'?: number | undefined; 'vulnerability.score.environmental'?: number | undefined; 'vulnerability.score.temporal'?: number | undefined; 'vulnerability.score.version'?: string | undefined; 'vulnerability.severity'?: string | undefined; } & {} & { 'ecs.version'?: string | undefined; 'kibana.alert.risk_score'?: number | undefined; 'kibana.alert.rule.author'?: string | undefined; 'kibana.alert.rule.created_at'?: string | number | undefined; 'kibana.alert.rule.created_by'?: string | undefined; 'kibana.alert.rule.description'?: string | undefined; 'kibana.alert.rule.enabled'?: string | undefined; 'kibana.alert.rule.from'?: string | undefined; 'kibana.alert.rule.interval'?: string | undefined; 'kibana.alert.rule.license'?: string | undefined; 'kibana.alert.rule.note'?: string | undefined; 'kibana.alert.rule.references'?: string[] | undefined; 'kibana.alert.rule.rule_id'?: string | undefined; 'kibana.alert.rule.rule_name_override'?: string | undefined; 'kibana.alert.rule.to'?: string | undefined; 'kibana.alert.rule.type'?: string | undefined; 'kibana.alert.rule.updated_at'?: string | number | undefined; 'kibana.alert.rule.updated_by'?: string | undefined; 'kibana.alert.rule.version'?: string | undefined; 'kibana.alert.severity'?: string | undefined; 'kibana.alert.suppression.docs_count'?: string | number | undefined; 'kibana.alert.suppression.end'?: string | number | undefined; 'kibana.alert.suppression.start'?: string | number | undefined; 'kibana.alert.suppression.terms.field'?: string[] | undefined; 'kibana.alert.suppression.terms.value'?: string[] | undefined; 'kibana.alert.system_status'?: string | undefined; 'kibana.alert.workflow_reason'?: string | undefined; 'kibana.alert.workflow_status_updated_at'?: string | number | undefined; 'kibana.alert.workflow_user'?: string | undefined; }) | ({ 'kibana.alert.job_id': string; } & { 'kibana.alert.anomaly_score'?: number | undefined; 'kibana.alert.anomaly_timestamp'?: string | number | undefined; 'kibana.alert.is_interim'?: boolean | undefined; 'kibana.alert.top_influencers'?: { influencer_field_name?: string | undefined; influencer_field_value?: string | undefined; influencer_score?: number | undefined; initial_influencer_score?: number | undefined; is_interim?: boolean | undefined; job_id?: string | undefined; timestamp?: string | number | undefined; }[] | undefined; 'kibana.alert.top_records'?: { actual?: number | undefined; by_field_name?: string | undefined; by_field_value?: string | undefined; detector_index?: number | undefined; field_name?: string | undefined; function?: string | undefined; initial_record_score?: number | undefined; is_interim?: boolean | undefined; job_id?: string | undefined; over_field_name?: string | undefined; over_field_value?: string | undefined; partition_field_name?: string | undefined; partition_field_value?: string | undefined; record_score?: number | undefined; timestamp?: string | number | undefined; typical?: number | undefined; }[] | undefined; } & { '@timestamp': string | number; 'kibana.alert.instance.id': string; 'kibana.alert.rule.category': string; 'kibana.alert.rule.consumer': string; 'kibana.alert.rule.name': string; 'kibana.alert.rule.producer': string; 'kibana.alert.rule.revision': string | number; 'kibana.alert.rule.rule_type_id': string; 'kibana.alert.rule.uuid': string; 'kibana.alert.status': string; 'kibana.alert.uuid': string; 'kibana.space_ids': string[]; } & { 'event.action'?: string | undefined; 'event.kind'?: string | undefined; 'kibana.alert.action_group'?: string | undefined; 'kibana.alert.case_ids'?: string[] | undefined; 'kibana.alert.duration.us'?: string | number | undefined; 'kibana.alert.end'?: string | number | undefined; 'kibana.alert.flapping'?: boolean | undefined; 'kibana.alert.flapping_history'?: boolean[] | undefined; 'kibana.alert.last_detected'?: string | number | undefined; 'kibana.alert.maintenance_window_ids'?: string[] | undefined; 'kibana.alert.reason'?: string | undefined; 'kibana.alert.rule.execution.uuid'?: string | undefined; 'kibana.alert.rule.parameters'?: unknown; 'kibana.alert.rule.tags'?: string[] | undefined; 'kibana.alert.start'?: string | number | undefined; 'kibana.alert.time_range'?: { gte?: string | number | undefined; lte?: string | number | undefined; } | undefined; 'kibana.alert.url'?: string | undefined; 'kibana.alert.workflow_assignee_ids'?: string[] | undefined; 'kibana.alert.workflow_status'?: string | undefined; 'kibana.alert.workflow_tags'?: string[] | undefined; 'kibana.version'?: string | undefined; tags?: string[] | undefined; })" ], "path": "packages/kbn-alerts-as-data-utils/src/schemas/index.ts", "deprecated": false, @@ -256,6 +256,21 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "@kbn/alerts-as-data-utils", + "id": "def-common.DefaultAlert", + "type": "Type", + "tags": [], + "label": "DefaultAlert", + "description": [], + "signature": [ + "{} & {} & { '@timestamp': string | number; 'kibana.alert.instance.id': string; 'kibana.alert.rule.category': string; 'kibana.alert.rule.consumer': string; 'kibana.alert.rule.name': string; 'kibana.alert.rule.producer': string; 'kibana.alert.rule.revision': string | number; 'kibana.alert.rule.rule_type_id': string; 'kibana.alert.rule.uuid': string; 'kibana.alert.status': string; 'kibana.alert.uuid': string; 'kibana.space_ids': string[]; } & { 'event.action'?: string | undefined; 'event.kind'?: string | undefined; 'kibana.alert.action_group'?: string | undefined; 'kibana.alert.case_ids'?: string[] | undefined; 'kibana.alert.duration.us'?: string | number | undefined; 'kibana.alert.end'?: string | number | undefined; 'kibana.alert.flapping'?: boolean | undefined; 'kibana.alert.flapping_history'?: boolean[] | undefined; 'kibana.alert.last_detected'?: string | number | undefined; 'kibana.alert.maintenance_window_ids'?: string[] | undefined; 'kibana.alert.reason'?: string | undefined; 'kibana.alert.rule.execution.uuid'?: string | undefined; 'kibana.alert.rule.parameters'?: unknown; 'kibana.alert.rule.tags'?: string[] | undefined; 'kibana.alert.start'?: string | number | undefined; 'kibana.alert.time_range'?: { gte?: string | number | undefined; lte?: string | number | undefined; } | undefined; 'kibana.alert.url'?: string | undefined; 'kibana.alert.workflow_assignee_ids'?: string[] | undefined; 'kibana.alert.workflow_status'?: string | undefined; 'kibana.alert.workflow_tags'?: string[] | undefined; 'kibana.version'?: string | undefined; tags?: string[] | undefined; }" + ], + "path": "packages/kbn-alerts-as-data-utils/src/schemas/generated/default_schema.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "@kbn/alerts-as-data-utils", "id": "def-common.EcsFieldMap", diff --git a/api_docs/kbn_alerts_as_data_utils.mdx b/api_docs/kbn_alerts_as_data_utils.mdx index a4d81e230e9c9..cf90100e2a7da 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-09 +date: 2024-01-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-as-data-utils'] --- import kbnAlertsAsDataUtilsObj from './kbn_alerts_as_data_utils.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-o | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 30 | 0 | 30 | 0 | +| 31 | 0 | 31 | 0 | ## Common diff --git a/api_docs/kbn_alerts_ui_shared.mdx b/api_docs/kbn_alerts_ui_shared.mdx index c3767d67a8986..d803efd84ac53 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-09 +date: 2024-01-10 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 3cc391acba021..bc313ed2b3cba 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-09 +date: 2024-01-10 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 85daecd1ae492..e4651424594c5 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-09 +date: 2024-01-10 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 e002341b9b257..8406a931cd462 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-09 +date: 2024-01-10 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 514feb32be28c..f00a7167fe870 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-09 +date: 2024-01-10 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 89b503d5d59ad..f94a3aa84f1d3 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-09 +date: 2024-01-10 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 795437f2ec415..1b27c6c528000 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-09 +date: 2024-01-10 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 e682f9636b176..cdd64c6ac27d4 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-09 +date: 2024-01-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-fullstory'] --- import kbnAnalyticsShippersFullstoryObj from './kbn_analytics_shippers_fullstory.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_gainsight.devdocs.json b/api_docs/kbn_analytics_shippers_gainsight.devdocs.json deleted file mode 100644 index b9be131348a0a..0000000000000 --- a/api_docs/kbn_analytics_shippers_gainsight.devdocs.json +++ /dev/null @@ -1,386 +0,0 @@ -{ - "id": "@kbn/analytics-shippers-gainsight", - "client": { - "classes": [ - { - "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-public.GainsightShipper", - "type": "Class", - "tags": [], - "label": "GainsightShipper", - "description": [ - "\ngainsight shipper." - ], - "signature": [ - { - "pluginId": "@kbn/analytics-shippers-gainsight", - "scope": "public", - "docId": "kibKbnAnalyticsShippersGainsightPluginApi", - "section": "def-public.GainsightShipper", - "text": "GainsightShipper" - }, - " implements ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.IShipper", - "text": "IShipper" - } - ], - "path": "packages/analytics/shippers/gainsight/src/gainsight_shipper.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-public.GainsightShipper.shipperName", - "type": "string", - "tags": [], - "label": "shipperName", - "description": [ - "Shipper's unique name" - ], - "path": "packages/analytics/shippers/gainsight/src/gainsight_shipper.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-public.GainsightShipper.Unnamed", - "type": "Function", - "tags": [], - "label": "Constructor", - "description": [ - "\nCreates a new instance of the gainsightShipper." - ], - "signature": [ - "any" - ], - "path": "packages/analytics/shippers/gainsight/src/gainsight_shipper.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-public.GainsightShipper.Unnamed.$1", - "type": "Object", - "tags": [], - "label": "config", - "description": [ - "{@link GainsightSnippetConfig }" - ], - "signature": [ - { - "pluginId": "@kbn/analytics-shippers-gainsight", - "scope": "public", - "docId": "kibKbnAnalyticsShippersGainsightPluginApi", - "section": "def-public.GainsightSnippetConfig", - "text": "GainsightSnippetConfig" - } - ], - "path": "packages/analytics/shippers/gainsight/src/gainsight_shipper.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-public.GainsightShipper.Unnamed.$2", - "type": "Object", - "tags": [], - "label": "initContext", - "description": [ - "{@link AnalyticsClientInitContext }" - ], - "signature": [ - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.AnalyticsClientInitContext", - "text": "AnalyticsClientInitContext" - } - ], - "path": "packages/analytics/shippers/gainsight/src/gainsight_shipper.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-public.GainsightShipper.extendContext", - "type": "Function", - "tags": [], - "label": "extendContext", - "description": [ - "\nCalls track or set on the fields provided in the newContext." - ], - "signature": [ - "(newContext: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.EventContext", - "text": "EventContext" - }, - ") => void" - ], - "path": "packages/analytics/shippers/gainsight/src/gainsight_shipper.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-public.GainsightShipper.extendContext.$1", - "type": "Object", - "tags": [], - "label": "newContext", - "description": [ - "The full new context to set {@link EventContext }" - ], - "signature": [ - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.EventContext", - "text": "EventContext" - } - ], - "path": "packages/analytics/shippers/gainsight/src/gainsight_shipper.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-public.GainsightShipper.optIn", - "type": "Function", - "tags": [], - "label": "optIn", - "description": [ - "\nStops/restarts the shipping mechanism based on the value of isOptedIn" - ], - "signature": [ - "(isOptedIn: boolean) => void" - ], - "path": "packages/analytics/shippers/gainsight/src/gainsight_shipper.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-public.GainsightShipper.optIn.$1", - "type": "boolean", - "tags": [], - "label": "isOptedIn", - "description": [ - "`true` for resume sending events. `false` to stop." - ], - "signature": [ - "boolean" - ], - "path": "packages/analytics/shippers/gainsight/src/gainsight_shipper.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-public.GainsightShipper.reportEvents", - "type": "Function", - "tags": [], - "label": "reportEvents", - "description": [ - "\nTransforms the event into a valid format and calls `track`." - ], - "signature": [ - "(events: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.Event", - "text": "Event" - }, - ">[]) => void" - ], - "path": "packages/analytics/shippers/gainsight/src/gainsight_shipper.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-public.GainsightShipper.reportEvents.$1", - "type": "Array", - "tags": [], - "label": "events", - "description": [ - "batched events {@link Event }" - ], - "signature": [ - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.Event", - "text": "Event" - }, - ">[]" - ], - "path": "packages/analytics/shippers/gainsight/src/gainsight_shipper.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-public.GainsightShipper.flush", - "type": "Function", - "tags": [], - "label": "flush", - "description": [ - "\nFlushes all internal queues of the shipper.\nIt doesn't really do anything inside because this shipper doesn't hold any internal queues." - ], - "signature": [ - "() => Promise" - ], - "path": "packages/analytics/shippers/gainsight/src/gainsight_shipper.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-public.GainsightShipper.shutdown", - "type": "Function", - "tags": [], - "label": "shutdown", - "description": [ - "\nShuts down the shipper.\nIt doesn't really do anything inside because this shipper doesn't hold any internal queues." - ], - "signature": [ - "() => void" - ], - "path": "packages/analytics/shippers/gainsight/src/gainsight_shipper.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - } - ], - "initialIsOpen": false - } - ], - "functions": [], - "interfaces": [ - { - "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-public.GainsightSnippetConfig", - "type": "Interface", - "tags": [], - "label": "GainsightSnippetConfig", - "description": [ - "\ngainsight basic configuration." - ], - "path": "packages/analytics/shippers/gainsight/src/load_snippet.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-public.GainsightSnippetConfig.gainsightOrgId", - "type": "string", - "tags": [], - "label": "gainsightOrgId", - "description": [ - "\nThe gainsight account id." - ], - "path": "packages/analytics/shippers/gainsight/src/load_snippet.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-public.GainsightSnippetConfig.scriptUrl", - "type": "string", - "tags": [], - "label": "scriptUrl", - "description": [ - "\nThe URL to load the gainsight client from. Falls back to `web-sdk.aptrinsic.com` if not specified." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/analytics/shippers/gainsight/src/load_snippet.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-public.GainsightSnippetConfig.cssFileEndpoint", - "type": "string", - "tags": [], - "label": "cssFileEndpoint", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/analytics/shippers/gainsight/src/load_snippet.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-public.GainsightSnippetConfig.widgetFileEndpoint", - "type": "string", - "tags": [], - "label": "widgetFileEndpoint", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/analytics/shippers/gainsight/src/load_snippet.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - } - ], - "enums": [], - "misc": [], - "objects": [] - }, - "server": { - "classes": [], - "functions": [], - "interfaces": [], - "enums": [], - "misc": [], - "objects": [] - }, - "common": { - "classes": [], - "functions": [], - "interfaces": [], - "enums": [], - "misc": [], - "objects": [] - } -} \ No newline at end of file diff --git a/api_docs/kbn_analytics_shippers_gainsight.mdx b/api_docs/kbn_analytics_shippers_gainsight.mdx deleted file mode 100644 index d8154ba830bcc..0000000000000 --- a/api_docs/kbn_analytics_shippers_gainsight.mdx +++ /dev/null @@ -1,33 +0,0 @@ ---- -#### -#### This document is auto-generated and is meant to be viewed inside our experimental, new docs system. -#### Reach out in #docs-engineering for more info. -#### -id: kibKbnAnalyticsShippersGainsightPluginApi -slug: /kibana-dev-docs/api/kbn-analytics-shippers-gainsight -title: "@kbn/analytics-shippers-gainsight" -image: https://source.unsplash.com/400x175/?github -description: API docs for the @kbn/analytics-shippers-gainsight plugin -date: 2024-01-09 -tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-gainsight'] ---- -import kbnAnalyticsShippersGainsightObj from './kbn_analytics_shippers_gainsight.devdocs.json'; - - - -Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. - -**Code health stats** - -| Public API count | Any count | Items lacking comments | Missing exports | -|-------------------|-----------|------------------------|-----------------| -| 18 | 0 | 2 | 0 | - -## Client - -### Classes - - -### Interfaces - - diff --git a/api_docs/kbn_apm_config_loader.mdx b/api_docs/kbn_apm_config_loader.mdx index 0f2090b562de8..6f9cd93d07dbb 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-09 +date: 2024-01-10 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 6771f9515aeee..584301ed360d7 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-09 +date: 2024-01-10 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 65c0d856cea0d..89347da113ae0 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-09 +date: 2024-01-10 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 d8cf45f045e0b..02a7400172bbc 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-09 +date: 2024-01-10 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 6dfc82c2a5955..c30684aa36bef 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-09 +date: 2024-01-10 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 3c47c2e66e6de..33f74e735dac8 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-09 +date: 2024-01-10 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 80cadf1eaceb0..f830a516e0a08 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-09 +date: 2024-01-10 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 3a61bc2972d63..ff7b005795dd9 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-09 +date: 2024-01-10 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 349dd2354596a..82d4b18c0a063 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-09 +date: 2024-01-10 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 a6e7f285f2136..a213d65260447 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-09 +date: 2024-01-10 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 b7203c4203916..51b97df47230b 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-09 +date: 2024-01-10 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 e4b5ce2a5321c..e9505eb8f9378 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-09 +date: 2024-01-10 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 0d9bd5392106a..69c530c9b0a29 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-09 +date: 2024-01-10 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 a13d7dcc52c95..a1a95da20ebf7 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-09 +date: 2024-01-10 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 70d4a1d523dc2..2ba4a49ce9c58 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-09 +date: 2024-01-10 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 94d83a10e1a98..35c132764f791 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-09 +date: 2024-01-10 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 0573c3207e45f..45b2ca345f84b 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-09 +date: 2024-01-10 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 ee1f5f9cc067f..f3e2ea0a217e9 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-09 +date: 2024-01-10 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 cc3f8d556e38a..b988eeef40126 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-09 +date: 2024-01-10 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 62e2d35c722cb..5a25ac3d77094 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-09 +date: 2024-01-10 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 b7cf77bc29958..d2632741f071a 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-09 +date: 2024-01-10 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 c7cd06a98323f..68fed6ce79b1d 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-09 +date: 2024-01-10 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 85b38f5c6c68d..e6c396d01a4d6 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-09 +date: 2024-01-10 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 16af768002825..2df421cfa51a2 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-09 +date: 2024-01-10 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 b008c8e2c26b4..ac6f299e06ba6 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-09 +date: 2024-01-10 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 4d13fe8918227..8259cd0d5d4ab 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-09 +date: 2024-01-10 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 a317b9cd70b10..7e8a42c299f22 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-09 +date: 2024-01-10 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 661294c327e4f..9e5a416f79571 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-09 +date: 2024-01-10 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 59425d840d209..655c1c4cd39f6 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-09 +date: 2024-01-10 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 ef83f1402d0c8..f7abf49c7dfb6 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-09 +date: 2024-01-10 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 1b5b6d4e41b4e..c2e4f7ffa9231 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-09 +date: 2024-01-10 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 11a3a783643e8..6434c324dbb40 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-09 +date: 2024-01-10 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 44d29e63ec766..e90eec682a1f7 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-09 +date: 2024-01-10 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 e43d9746cfa4e..80ae579f21f71 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-09 +date: 2024-01-10 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 fd8bdd0a90c60..39c5e3bbd0f0d 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-09 +date: 2024-01-10 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 16e348b220b76..0e58f95ee687c 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-09 +date: 2024-01-10 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 197533248eacf..c30ee22b4d2f9 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-09 +date: 2024-01-10 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 ec338683f4240..7fce5d89e17d5 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-09 +date: 2024-01-10 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 faca57d60121c..ed6dfef875398 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-09 +date: 2024-01-10 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 68d3d670adf52..e7f63a9bef093 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-09 +date: 2024-01-10 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 31fed1946f8e2..5a9a3b25989a4 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-09 +date: 2024-01-10 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 9c90d5d6fcd34..e3dad2679c211 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-09 +date: 2024-01-10 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 f6b85372839b1..a9e2304bd51a0 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-09 +date: 2024-01-10 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 4354ee6adf48e..d4a30527d5f8d 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-09 +date: 2024-01-10 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 f1b15f553e9cc..15df91edd0c17 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-09 +date: 2024-01-10 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 36fc802c37e0a..106b1e07143ad 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-09 +date: 2024-01-10 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 88abb18325344..ab86c3cde36fc 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-09 +date: 2024-01-10 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 27d7451276068..23fc961910261 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-09 +date: 2024-01-10 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 4fc72ae8c2d87..062b97fb494b8 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-09 +date: 2024-01-10 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 ed267ae92aab5..ae54de32b4c64 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-09 +date: 2024-01-10 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 9a43d4d97f969..1eade9f6c2d91 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-09 +date: 2024-01-10 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 1315b64cfe802..e2dff782db292 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-09 +date: 2024-01-10 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 50bf4ddd962ad..72d5c5c9ef2cc 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-09 +date: 2024-01-10 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 06575915427df..2c6d0ceb3a87b 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-09 +date: 2024-01-10 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 8e826df677327..ef9cb3bfd647e 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-09 +date: 2024-01-10 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 a62eda28b1b40..105e58bd5b123 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-09 +date: 2024-01-10 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 9606e82fa87b4..47491f51f88c6 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-09 +date: 2024-01-10 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 e685703deccb2..5c658b77f0a3c 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-09 +date: 2024-01-10 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 fdb1eb185be19..1385f8c0fb60c 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-09 +date: 2024-01-10 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 84c99432180a1..8e219f140a023 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-09 +date: 2024-01-10 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 1ba1227c403b5..4e835e841e917 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-09 +date: 2024-01-10 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 4f31a04e9749e..70d66da969575 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-09 +date: 2024-01-10 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 5260c921e4428..4538f76d05b6c 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-09 +date: 2024-01-10 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 709c113117cee..9e1e861c476ea 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-09 +date: 2024-01-10 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 01650366cec57..ae312f39e7e89 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-09 +date: 2024-01-10 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 9a171daca8721..e6bb2bcd458e7 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-09 +date: 2024-01-10 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 38ce4904f492e..997a0f983f5fe 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-09 +date: 2024-01-10 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 b2b87cf1cb1a8..8934937c0842f 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-09 +date: 2024-01-10 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 34d5697644e8e..5a1123566a866 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-09 +date: 2024-01-10 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 4a1064ae06ab9..89404e7afc2fc 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-09 +date: 2024-01-10 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 6bee8f2e3fec6..18128c323acb4 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-09 +date: 2024-01-10 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 1db80662920c9..b610a1d378dd3 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-09 +date: 2024-01-10 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 4899461dabd0e..844957383cb45 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-09 +date: 2024-01-10 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 ac27dc87dfea4..8a79ff1861839 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-09 +date: 2024-01-10 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 082857f404daa..f5e6e19720840 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-09 +date: 2024-01-10 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 30fb21523b29f..66eae257a841e 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-09 +date: 2024-01-10 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 ed7405be5bef9..7ef02feec76cf 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-09 +date: 2024-01-10 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 6c562cea35200..e68a1b781af61 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-09 +date: 2024-01-10 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 9269781911b7c..c555089f3d5e3 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-09 +date: 2024-01-10 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 4307dea3a6985..50349a93d0a5c 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-09 +date: 2024-01-10 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 f1755b5877429..43b683b40322e 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-09 +date: 2024-01-10 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 eb7eff69f5e61..0ea3d5dac5eee 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-09 +date: 2024-01-10 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 48fe0ff9ecc72..e74280be744e2 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-09 +date: 2024-01-10 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 3c3bf5d2d3fea..7d8e68a039c6c 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-09 +date: 2024-01-10 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 4ec3c8a5b7f86..f285290990292 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-09 +date: 2024-01-10 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 fe140a9919ef3..aa5c841a4fd6e 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-09 +date: 2024-01-10 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 484301800b54d..f6bbcec86bf61 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-09 +date: 2024-01-10 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 5ba42510fc562..0aa3645c653f3 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-09 +date: 2024-01-10 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 aa759076582aa..2f704e6e9207e 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-09 +date: 2024-01-10 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 08f07e2ce3b4d..99fc280325fc5 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-09 +date: 2024-01-10 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 c64d7f4cff729..b3c69dd6c8bdb 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-09 +date: 2024-01-10 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 75c15f3bc0039..bb29354b10916 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-09 +date: 2024-01-10 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 78a2eef9e5b29..9f7afe3a22fb5 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-09 +date: 2024-01-10 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 0c931613baaf8..9c7cd68f80dd7 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-09 +date: 2024-01-10 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 2cb16d9cc0a4c..4fcbb56bf1ab8 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-09 +date: 2024-01-10 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 6787e1e5382d1..b7f93acbd0410 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-09 +date: 2024-01-10 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 f9de0b41099cd..6e15f07003a1f 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-09 +date: 2024-01-10 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 0d40a29984b14..16b160d1fc391 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-09 +date: 2024-01-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-router-server-mocks'] --- import kbnCoreHttpRouterServerMocksObj from './kbn_core_http_router_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_server.devdocs.json b/api_docs/kbn_core_http_server.devdocs.json index 1fdad6d156ff6..c022a8913c331 100644 --- a/api_docs/kbn_core_http_server.devdocs.json +++ b/api_docs/kbn_core_http_server.devdocs.json @@ -13677,6 +13677,10 @@ "plugin": "securitySolution", "path": "x-pack/plugins/security_solution/server/lib/entity_analytics/risk_engine/routes/privileges.ts" }, + { + "plugin": "securitySolution", + "path": "x-pack/plugins/security_solution/server/lib/entity_analytics/risk_engine/routes/settings.ts" + }, { "plugin": "securitySolution", "path": "x-pack/plugins/security_solution/server/lib/timeline/routes/timelines/get_timeline/index.ts" diff --git a/api_docs/kbn_core_http_server.mdx b/api_docs/kbn_core_http_server.mdx index 9884e0b126108..8ca3bc8f428a5 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-09 +date: 2024-01-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server'] --- import kbnCoreHttpServerObj from './kbn_core_http_server.devdocs.json'; diff --git a/api_docs/kbn_core_http_server_internal.mdx b/api_docs/kbn_core_http_server_internal.mdx index d8f7d4c781150..cc1afda81abb3 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-09 +date: 2024-01-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server-internal'] --- import kbnCoreHttpServerInternalObj from './kbn_core_http_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_http_server_mocks.mdx b/api_docs/kbn_core_http_server_mocks.mdx index 208115e4a805d..c090f024136db 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-09 +date: 2024-01-10 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 54981e5031a5b..079f0993a16d6 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-09 +date: 2024-01-10 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 7baed1c9f3aa1..95e7496dc2b56 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-09 +date: 2024-01-10 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 fc1023988239d..83b303c58b647 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-09 +date: 2024-01-10 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 21c64dbb603bb..e84d5a8cc0d07 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-09 +date: 2024-01-10 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 cbda2c03f5751..2faa043d1e1d3 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-09 +date: 2024-01-10 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 c7a822155624b..166b7cc551fa3 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-09 +date: 2024-01-10 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 9129c804b8339..fa6f9389e1bef 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-09 +date: 2024-01-10 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 6b8ef6214b682..f6709365efcb3 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-09 +date: 2024-01-10 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 0ecb0717b942b..9ada29d26bbcf 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-09 +date: 2024-01-10 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 34b5efd9aab45..fd457115cd637 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-09 +date: 2024-01-10 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 a921cf5a7240f..740fb170f44e2 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-09 +date: 2024-01-10 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 388f65b860cad..7932f52b568f1 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-09 +date: 2024-01-10 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 dbc3afefe55c5..bcc799295003a 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-09 +date: 2024-01-10 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 0d34ab0932882..b7a460389990b 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-09 +date: 2024-01-10 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 0f0a468cfbfd1..3bf324869b0bd 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-09 +date: 2024-01-10 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 e149d6ea14f43..a2b97de9d285a 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-09 +date: 2024-01-10 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 6f64fe71cf342..b1bad5fa2af4f 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-09 +date: 2024-01-10 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 d04bfa80b560f..caf384c14de25 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-09 +date: 2024-01-10 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 8d167579cde3b..f1e0368d04ef2 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-09 +date: 2024-01-10 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 ccd34e4edb672..8a6a90fdd7935 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-09 +date: 2024-01-10 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 a57c23eabd79b..c72813babb162 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-09 +date: 2024-01-10 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 dfd6a664dff20..bf90c226f7e8a 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-09 +date: 2024-01-10 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 592910611449d..4e7bc4972c680 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-09 +date: 2024-01-10 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 241e6e02e4b37..281147a408ea0 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-09 +date: 2024-01-10 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 866ee97f7bc88..4e53191c8b95e 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-09 +date: 2024-01-10 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 098b0c01b27f0..c0bff6059a9fc 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-09 +date: 2024-01-10 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 fd44ba1c18f4e..af407bd2d7949 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-09 +date: 2024-01-10 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 6fa145420e996..044c5d554fbaa 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-09 +date: 2024-01-10 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 93eabceafb75c..cd93eaea9aab8 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-09 +date: 2024-01-10 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 919384f82b9ec..26a0d739f8501 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-09 +date: 2024-01-10 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 9ef4d9d683c1b..2116dd5804af9 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-09 +date: 2024-01-10 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 12eea61f439b1..db0673f862733 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-09 +date: 2024-01-10 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 48859b350ab41..063379bdb3f70 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-09 +date: 2024-01-10 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 8de32b429e1d0..247be3272b08e 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-09 +date: 2024-01-10 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 a203cffbc81d7..4ba615d71b047 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-09 +date: 2024-01-10 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 134c32f60889c..817bd39f9ba75 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-09 +date: 2024-01-10 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 4731c041788c0..02a9da9efbaa9 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-09 +date: 2024-01-10 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 03cbb300d3ce6..d8590126a5185 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-09 +date: 2024-01-10 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 42f3416390219..015c80e18e9d8 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-09 +date: 2024-01-10 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 e3c64e40d2393..9f80bb6587cda 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-09 +date: 2024-01-10 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 6b5260934c120..43c737c6674bc 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-09 +date: 2024-01-10 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 af22fc8cf352d..b653ed8e74072 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-09 +date: 2024-01-10 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 80ad54e1bdefe..73551d43462ee 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-09 +date: 2024-01-10 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 be635b1f5cec1..ff3639c4dac65 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-09 +date: 2024-01-10 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 e77ff87606397..2234b711191ee 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-09 +date: 2024-01-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-browser'] --- import kbnCoreSavedObjectsApiBrowserObj from './kbn_core_saved_objects_api_browser.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_api_server.mdx b/api_docs/kbn_core_saved_objects_api_server.mdx index 544b83a8e524a..e9918465f5411 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-09 +date: 2024-01-10 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 a57d425f00dce..fd3189e9d4510 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-09 +date: 2024-01-10 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 2cc7df8f44e49..b2abac888ce90 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-09 +date: 2024-01-10 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 e33a407ce1c79..c527ed26b3d59 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-09 +date: 2024-01-10 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 29233f408aa14..acbd3b5c2d860 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-09 +date: 2024-01-10 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 8341217a30614..eb7587d3eb582 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-09 +date: 2024-01-10 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 e8fd21f5251ce..e4eaacd8a4e59 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-09 +date: 2024-01-10 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 fae8cb8766989..7e0bca8dbf292 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-09 +date: 2024-01-10 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 4d481c1e53196..9a7899766cccb 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-09 +date: 2024-01-10 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 cdc14a239a40f..56f403cc9614b 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-09 +date: 2024-01-10 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 7a5226009bb75..af7b674ca1f51 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-09 +date: 2024-01-10 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 633d733a969c0..4bca2389e80f2 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-09 +date: 2024-01-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-migration-server-mocks'] --- import kbnCoreSavedObjectsMigrationServerMocksObj from './kbn_core_saved_objects_migration_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_server.mdx b/api_docs/kbn_core_saved_objects_server.mdx index 04d7c63eef070..419d93f0f454a 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-09 +date: 2024-01-10 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 ad1a1ef9d8afb..e903f3f7108f3 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-09 +date: 2024-01-10 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 23944d432f2f8..f6b27444f2df2 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-09 +date: 2024-01-10 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 67da49852f821..2ef3de890fb1c 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-09 +date: 2024-01-10 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 eb4822f2c3246..8f242fc61dfd0 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-09 +date: 2024-01-10 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 885e59eef5601..ab88b1c5aef1b 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-09 +date: 2024-01-10 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 9cbfcd81a6642..e5141e31bc56b 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-09 +date: 2024-01-10 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 01ec7e7381bce..9a1faa59b6ce2 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-09 +date: 2024-01-10 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 135672a28b5e3..d00c83ca3630b 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-09 +date: 2024-01-10 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 c6e19d11a5c75..c78bfe14a77e8 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-09 +date: 2024-01-10 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 24b030fffb15a..d37139c39564f 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-09 +date: 2024-01-10 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 a9cad388e8eda..73d3f4ac47f9c 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-09 +date: 2024-01-10 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 7b41612b4f430..19735fd8ab9b0 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-09 +date: 2024-01-10 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 2b726b2a43ed4..21d35a8474dae 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-09 +date: 2024-01-10 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 9dee598a17712..c1a9277df7439 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-09 +date: 2024-01-10 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 1c30e2bfcc466..4f0d9073b25dc 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-09 +date: 2024-01-10 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 de4913f7ee568..21afc2cc3c4db 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-09 +date: 2024-01-10 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 fa6ede8f8a36e..120c75a3ea074 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-09 +date: 2024-01-10 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 ec0c2388adbbd..3018f156fa240 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-09 +date: 2024-01-10 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 a5a033a4554f3..c08b4212e1f86 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-09 +date: 2024-01-10 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 51d58e0137a8e..8c69ffc24b60d 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-09 +date: 2024-01-10 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 7e81bea90e72d..7ba1f659e3e21 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-09 +date: 2024-01-10 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 ebfa9dc9f7861..6660b40a04889 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-09 +date: 2024-01-10 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 b4bdaa4b0bbde..169d51f9195da 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-09 +date: 2024-01-10 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 cb34bff7d75ec..8ca8bd843073d 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-09 +date: 2024-01-10 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 1cc4d7f01a367..1f75507bd306a 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-09 +date: 2024-01-10 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 fcf9d6491dc56..dda4c6374f626 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-09 +date: 2024-01-10 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 10851e590dd87..ae2850cd47f61 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-09 +date: 2024-01-10 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 f7b5649187160..46951c82532bb 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-09 +date: 2024-01-10 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 ff270fba507d4..5a30812f400bc 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-09 +date: 2024-01-10 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 d6365f3bdebbc..4fc89889299a4 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-09 +date: 2024-01-10 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 e48416b5d0cf6..bae3f33b152a5 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-09 +date: 2024-01-10 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 c1c6bc10ca39a..f3aad13670573 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-09 +date: 2024-01-10 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 a9ef299d0457e..11dd540bec5af 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-09 +date: 2024-01-10 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 7487b52037304..38ca6ab905067 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-09 +date: 2024-01-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cypress-config'] --- import kbnCypressConfigObj from './kbn_cypress_config.devdocs.json'; diff --git a/api_docs/kbn_data_service.mdx b/api_docs/kbn_data_service.mdx index db53007b83df5..ae4c6c073902e 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-09 +date: 2024-01-10 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 7c87b95b1859a..dd0c97ef40b1f 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-09 +date: 2024-01-10 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 b63a56f8e4289..de8eb9ee39f94 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-09 +date: 2024-01-10 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 0f6efcd60a7e1..c2bad23fa89c1 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-09 +date: 2024-01-10 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 5d5b89cafad71..3fca77d481c39 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-09 +date: 2024-01-10 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 2ef8682e1a3c6..b286f1b08049d 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-09 +date: 2024-01-10 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 97a5f8e3e3415..879d6f6809e2a 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-09 +date: 2024-01-10 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 b19ba79ffe672..6b88de4176043 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-09 +date: 2024-01-10 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 a628d593c7853..284de07ce1e0d 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-09 +date: 2024-01-10 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 7a8c8239cba5e..24aa493bdb7e3 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-09 +date: 2024-01-10 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 b8acae374a2b7..300d9e8ac88f5 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-09 +date: 2024-01-10 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 68bffbf2e3f1d..0dd176fb50177 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-09 +date: 2024-01-10 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 af6711c1957bf..6b15cc40c5253 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-09 +date: 2024-01-10 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 7cc1967a971e0..940ef91ac3c59 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-09 +date: 2024-01-10 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 ed47bb1ccfd6a..8147695ecc9ae 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-09 +date: 2024-01-10 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 03af88f37de12..2016664ad7a77 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-09 +date: 2024-01-10 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 550b3eb5eaa69..16b03dd542749 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-09 +date: 2024-01-10 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 7f4741208ec33..06a9d09171e2d 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-09 +date: 2024-01-10 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 536a851a25c60..783c9a16a3637 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-09 +date: 2024-01-10 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 9064dcfa4a2cd..a792368d07708 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-09 +date: 2024-01-10 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 b56ad78177107..6793b9477475c 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-09 +date: 2024-01-10 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 60d001f4cd7d2..c6e9a48bf9b26 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-09 +date: 2024-01-10 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 809ebf65dbb15..970f0815a24b5 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-09 +date: 2024-01-10 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 1b29fdb9cc57f..04b9cc4435ab5 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-09 +date: 2024-01-10 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 06871b26bad43..ce9fd8c491032 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-09 +date: 2024-01-10 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 e478cb639e51f..fe089e8c532ce 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-09 +date: 2024-01-10 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 a1f7fbc4afbf9..c788469f086e2 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-09 +date: 2024-01-10 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 380bf5922f36f..e26ef63058495 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-09 +date: 2024-01-10 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 9f6de7549c6ec..2f7c289a56c12 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-09 +date: 2024-01-10 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 f9d16df7eea23..0c40a52e61f0c 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-09 +date: 2024-01-10 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 6214521f3e5d9..d5eae0eec14bb 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-09 +date: 2024-01-10 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 4a23f1d9eddf3..d88b59e757f66 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-09 +date: 2024-01-10 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 61e787ec38c4f..7e5314c98873f 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-09 +date: 2024-01-10 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 f9eec803773aa..6e371ca70d5c7 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-09 +date: 2024-01-10 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 fc9289a81c2d7..8c74e71b34b99 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-09 +date: 2024-01-10 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 fafaa3090343f..e913732ae909d 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-09 +date: 2024-01-10 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 c7b71a1eda9b9..172d4f2bc2e55 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-09 +date: 2024-01-10 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 4ea9a982d4510..226128a9939a1 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-09 +date: 2024-01-10 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 e105d239c07c2..fd6d064c77c60 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-09 +date: 2024-01-10 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.devdocs.json b/api_docs/kbn_ftr_common_functional_ui_services.devdocs.json index e2f2105db52c4..45d506fcafd31 100644 --- a/api_docs/kbn_ftr_common_functional_ui_services.devdocs.json +++ b/api_docs/kbn_ftr_common_functional_ui_services.devdocs.json @@ -18,6 +18,1903 @@ }, "common": { "classes": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects", + "type": "Class", + "tags": [], + "label": "TestSubjects", + "description": [], + "signature": [ + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.TestSubjects", + "text": "TestSubjects" + }, + " extends ", + "FtrService" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.log", + "type": "Object", + "tags": [], + "label": "log", + "description": [], + "signature": [ + { + "pluginId": "@kbn/tooling-log", + "scope": "common", + "docId": "kibKbnToolingLogPluginApi", + "section": "def-common.ToolingLog", + "text": "ToolingLog" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.retry", + "type": "Object", + "tags": [], + "label": "retry", + "description": [], + "signature": [ + { + "pluginId": "@kbn/ftr-common-functional-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalServicesPluginApi", + "section": "def-common.RetryService", + "text": "RetryService" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.findService", + "type": "CompoundType", + "tags": [], + "label": "findService", + "description": [], + "signature": [ + { + "pluginId": "@kbn/test", + "scope": "common", + "docId": "kibKbnTestPluginApi", + "section": "def-common.AsyncInstance", + "text": "AsyncInstance" + }, + "<", + "FindService", + "> & ", + "FindService" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.config", + "type": "Object", + "tags": [], + "label": "config", + "description": [], + "signature": [ + { + "pluginId": "@kbn/test", + "scope": "common", + "docId": "kibKbnTestPluginApi", + "section": "def-common.Config", + "text": "Config" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.FIND_TIME", + "type": "Any", + "tags": [], + "label": "FIND_TIME", + "description": [], + "signature": [ + "any" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.TRY_TIME", + "type": "Any", + "tags": [], + "label": "TRY_TIME", + "description": [], + "signature": [ + "any" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.WAIT_FOR_EXISTS_TIME", + "type": "Any", + "tags": [], + "label": "WAIT_FOR_EXISTS_TIME", + "description": [], + "signature": [ + "any" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.exists", + "type": "Function", + "tags": [], + "label": "exists", + "description": [ + "\nGet a promise that resolves with `true` when an element exists, if the element doesn't exist\nyet it will wait until the element does exist. If we wait until the timeout and the element\nstill doesn't exist the promise will resolve with `false`.\n\nThis method is intended to quickly answer the question \"does this testSubject exist\". Its\n2.5 second timeout responds quickly, making it a good candidate for putting inside\n`retry.waitFor()` loops.\n\nWhen `options.timeout` is not passed the `timeouts.waitForExists` config is used as\nthe timeout. The default value for that config is currently 2.5 seconds (in ms).\n\nIf the element is hidden it is not treated as \"existing\", unless `options.allowHidden`\nis set to `true`." + ], + "signature": [ + "(selector: string, options?: ExistsOptions) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.exists.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.exists.$2", + "type": "Object", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "ExistsOptions" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.existOrFail", + "type": "Function", + "tags": [], + "label": "existOrFail", + "description": [ + "\nGet a promise that resolves when an element exists, if the element doesn't exist\nbefore the timeout is reached the promise will reject with an error.\n\nThis method is intended to be used as success critieria when something is expected\nto exist. The default 2 minute timeout is not appropriate for all conditions, but\nhard-coding timeouts all over tests is also bad, so please use your best judgement.\n\nThe options are equal to the options accepted by the {@link #exists} method except\nthat `options.timeout` defaults to the `timeouts.try` config, or 2 minutes." + ], + "signature": [ + "(selector: string, existsOptions?: ExistsOptions | undefined) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.existOrFail.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.existOrFail.$2", + "type": "Object", + "tags": [], + "label": "existsOptions", + "description": [], + "signature": [ + "ExistsOptions | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.missingOrFail", + "type": "Function", + "tags": [], + "label": "missingOrFail", + "description": [ + "\nGet a promise that resolves when an element no longer exists, if the element does exist\nit will wait until the element does not exist. If we wait until the timeout and the element\nstill exists the promise will reject.\n\nThis method is intended to quickly assert that an element does not exist. Its\n2.5 second timeout responds quickly.\n\nWhen `options.timeout` is not passed the `timeouts.waitForExists` config is used as\nthe timeout. The default value for that config is currently 2.5 seconds.\n\nIf the element is hidden but still in the DOM it is treated as \"existing\", unless `options.allowHidden`\nis set to `true`." + ], + "signature": [ + "(selector: string, options?: ExistsOptions) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.missingOrFail.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.missingOrFail.$2", + "type": "Object", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "ExistsOptions" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.stringExistsInCodeBlockOrFail", + "type": "Function", + "tags": [], + "label": "stringExistsInCodeBlockOrFail", + "description": [], + "signature": [ + "(codeBlockSelector: string, stringToFind: string) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.stringExistsInCodeBlockOrFail.$1", + "type": "string", + "tags": [], + "label": "codeBlockSelector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.stringExistsInCodeBlockOrFail.$2", + "type": "string", + "tags": [], + "label": "stringToFind", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.append", + "type": "Function", + "tags": [], + "label": "append", + "description": [], + "signature": [ + "(selector: string, text: string) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.append.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.append.$2", + "type": "string", + "tags": [], + "label": "text", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.clickWhenNotDisabled", + "type": "Function", + "tags": [], + "label": "clickWhenNotDisabled", + "description": [ + "\nClicks on the element identified by the testSubject selector. If the retries\nautomatically on \"stale element\" errors unlike clickWhenNotDisabledWithoutRetry.\n`opts.timeout` defaults to the 'timeouts.find' config, which defaults to 10 seconds" + ], + "signature": [ + "(selector: string, opts?: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.TimeoutOpt", + "text": "TimeoutOpt" + }, + " | undefined) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.clickWhenNotDisabled.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.clickWhenNotDisabled.$2", + "type": "Object", + "tags": [], + "label": "opts", + "description": [], + "signature": [ + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.TimeoutOpt", + "text": "TimeoutOpt" + }, + " | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.clickWhenNotDisabledWithoutRetry", + "type": "Function", + "tags": [], + "label": "clickWhenNotDisabledWithoutRetry", + "description": [ + "\nClicks on the element identified by the testSubject selector. Somewhat surprisingly,\nthis method allows `stale element` errors to propogate, which is why it was renamed\nfrom `clickWhenNotDisabled()` and that method was re-implemented to be more consistent\nwith the rest of the functions in this service.\n\n`opts.timeout` defaults to the 'timeouts.find' config, which defaults to 10 seconds" + ], + "signature": [ + "(selector: string, opts?: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.TimeoutOpt", + "text": "TimeoutOpt" + }, + " | undefined) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.clickWhenNotDisabledWithoutRetry.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.clickWhenNotDisabledWithoutRetry.$2", + "type": "Object", + "tags": [], + "label": "opts", + "description": [], + "signature": [ + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.TimeoutOpt", + "text": "TimeoutOpt" + }, + " | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.click", + "type": "Function", + "tags": [], + "label": "click", + "description": [], + "signature": [ + "(selector: string, timeout?: number, topOffset?: number | undefined) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.click.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.click.$2", + "type": "number", + "tags": [], + "label": "timeout", + "description": [], + "signature": [ + "number" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.click.$3", + "type": "number", + "tags": [], + "label": "topOffset", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.pressEnter", + "type": "Function", + "tags": [], + "label": "pressEnter", + "description": [], + "signature": [ + "(selector: string, timeout?: number) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.pressEnter.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.pressEnter.$2", + "type": "number", + "tags": [], + "label": "timeout", + "description": [], + "signature": [ + "number" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.doubleClick", + "type": "Function", + "tags": [], + "label": "doubleClick", + "description": [], + "signature": [ + "(selector: string, timeout?: number) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.doubleClick.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.doubleClick.$2", + "type": "number", + "tags": [], + "label": "timeout", + "description": [], + "signature": [ + "number" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.descendantExists", + "type": "Function", + "tags": [], + "label": "descendantExists", + "description": [], + "signature": [ + "(selector: string, parentElement: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.WebElementWrapper", + "text": "WebElementWrapper" + }, + ") => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.descendantExists.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.descendantExists.$2", + "type": "Object", + "tags": [], + "label": "parentElement", + "description": [], + "signature": [ + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.WebElementWrapper", + "text": "WebElementWrapper" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.findDescendant", + "type": "Function", + "tags": [], + "label": "findDescendant", + "description": [], + "signature": [ + "(selector: string, parentElement: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.WebElementWrapper", + "text": "WebElementWrapper" + }, + ") => Promise<", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.WebElementWrapper", + "text": "WebElementWrapper" + }, + ">" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.findDescendant.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.findDescendant.$2", + "type": "Object", + "tags": [], + "label": "parentElement", + "description": [], + "signature": [ + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.WebElementWrapper", + "text": "WebElementWrapper" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.findAllDescendant", + "type": "Function", + "tags": [], + "label": "findAllDescendant", + "description": [], + "signature": [ + "(selector: string, parentElement: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.WebElementWrapper", + "text": "WebElementWrapper" + }, + ") => Promise<", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.WebElementWrapper", + "text": "WebElementWrapper" + }, + "[]>" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.findAllDescendant.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.findAllDescendant.$2", + "type": "Object", + "tags": [], + "label": "parentElement", + "description": [], + "signature": [ + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.WebElementWrapper", + "text": "WebElementWrapper" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.find", + "type": "Function", + "tags": [], + "label": "find", + "description": [], + "signature": [ + "(selector: string, timeout?: number) => Promise<", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.WebElementWrapper", + "text": "WebElementWrapper" + }, + ">" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.find.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.find.$2", + "type": "number", + "tags": [], + "label": "timeout", + "description": [], + "signature": [ + "number" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.findAll", + "type": "Function", + "tags": [], + "label": "findAll", + "description": [], + "signature": [ + "(selector: string, timeout?: number | undefined) => Promise<", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.WebElementWrapper", + "text": "WebElementWrapper" + }, + "[]>" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.findAll.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.findAll.$2", + "type": "number", + "tags": [], + "label": "timeout", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.getAttributeAll", + "type": "Function", + "tags": [], + "label": "getAttributeAll", + "description": [], + "signature": [ + "(selector: string, attribute: string) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.getAttributeAll.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.getAttributeAll.$2", + "type": "string", + "tags": [], + "label": "attribute", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.getAttribute", + "type": "Function", + "tags": [], + "label": "getAttribute", + "description": [], + "signature": [ + "(selector: string, attribute: string, options?: number | { findTimeout?: number | undefined; tryTimeout?: number | undefined; } | undefined) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.getAttribute.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.getAttribute.$2", + "type": "string", + "tags": [], + "label": "attribute", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.getAttribute.$3", + "type": "CompoundType", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "number | { findTimeout?: number | undefined; tryTimeout?: number | undefined; } | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.setValue", + "type": "Function", + "tags": [], + "label": "setValue", + "description": [], + "signature": [ + "(selector: string, text: string, options?: SetValueOptions, topOffset?: number | undefined) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.setValue.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.setValue.$2", + "type": "string", + "tags": [], + "label": "text", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.setValue.$3", + "type": "Object", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "SetValueOptions" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.setValue.$4", + "type": "number", + "tags": [], + "label": "topOffset", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.selectValue", + "type": "Function", + "tags": [], + "label": "selectValue", + "description": [], + "signature": [ + "(selector: string, value: string) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.selectValue.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.selectValue.$2", + "type": "string", + "tags": [], + "label": "value", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.isEnabled", + "type": "Function", + "tags": [], + "label": "isEnabled", + "description": [], + "signature": [ + "(selector: string) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.isEnabled.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.isDisplayed", + "type": "Function", + "tags": [], + "label": "isDisplayed", + "description": [], + "signature": [ + "(selector: string, timeout?: number | undefined) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.isDisplayed.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.isDisplayed.$2", + "type": "number", + "tags": [], + "label": "timeout", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.isSelected", + "type": "Function", + "tags": [], + "label": "isSelected", + "description": [], + "signature": [ + "(selector: string) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.isSelected.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.isSelectedAll", + "type": "Function", + "tags": [], + "label": "isSelectedAll", + "description": [], + "signature": [ + "(selectorAll: string) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.isSelectedAll.$1", + "type": "string", + "tags": [], + "label": "selectorAll", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.getVisibleText", + "type": "Function", + "tags": [], + "label": "getVisibleText", + "description": [], + "signature": [ + "(selector: string) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.getVisibleText.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.getVisibleTextAll", + "type": "Function", + "tags": [], + "label": "getVisibleTextAll", + "description": [], + "signature": [ + "(selectorAll: string) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.getVisibleTextAll.$1", + "type": "string", + "tags": [], + "label": "selectorAll", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.moveMouseTo", + "type": "Function", + "tags": [], + "label": "moveMouseTo", + "description": [], + "signature": [ + "(selector: string) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.moveMouseTo.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.waitForDeleted", + "type": "Function", + "tags": [], + "label": "waitForDeleted", + "description": [], + "signature": [ + "(selectorOrElement: string | ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.WebElementWrapper", + "text": "WebElementWrapper" + }, + ") => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.waitForDeleted.$1", + "type": "CompoundType", + "tags": [], + "label": "selectorOrElement", + "description": [], + "signature": [ + "string | ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.WebElementWrapper", + "text": "WebElementWrapper" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.waitForAttributeToChange", + "type": "Function", + "tags": [], + "label": "waitForAttributeToChange", + "description": [], + "signature": [ + "(selector: string, attribute: string, value: string) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.waitForAttributeToChange.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.waitForAttributeToChange.$2", + "type": "string", + "tags": [], + "label": "attribute", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.waitForAttributeToChange.$3", + "type": "string", + "tags": [], + "label": "value", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.waitForHidden", + "type": "Function", + "tags": [], + "label": "waitForHidden", + "description": [], + "signature": [ + "(selector: string, timeout?: number | undefined) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.waitForHidden.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.waitForHidden.$2", + "type": "number", + "tags": [], + "label": "timeout", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.waitForEnabled", + "type": "Function", + "tags": [], + "label": "waitForEnabled", + "description": [], + "signature": [ + "(selector: string, timeout?: number) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.waitForEnabled.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.waitForEnabled.$2", + "type": "number", + "tags": [], + "label": "timeout", + "description": [], + "signature": [ + "number" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.getCssSelector", + "type": "Function", + "tags": [], + "label": "getCssSelector", + "description": [], + "signature": [ + "(selector: string) => string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.getCssSelector.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.scrollIntoView", + "type": "Function", + "tags": [], + "label": "scrollIntoView", + "description": [], + "signature": [ + "(selector: string, offset?: number | { topOffset?: number | undefined; bottomOffset?: number | undefined; } | undefined) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.scrollIntoView.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.scrollIntoView.$2", + "type": "CompoundType", + "tags": [], + "label": "offset", + "description": [], + "signature": [ + "number | { topOffset?: number | undefined; bottomOffset?: number | undefined; } | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.isChecked", + "type": "Function", + "tags": [], + "label": "isChecked", + "description": [], + "signature": [ + "(selector: string) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.isChecked.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.setCheckbox", + "type": "Function", + "tags": [], + "label": "setCheckbox", + "description": [], + "signature": [ + "(selector: string, state: \"check\" | \"uncheck\") => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.setCheckbox.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.setCheckbox.$2", + "type": "CompoundType", + "tags": [], + "label": "state", + "description": [], + "signature": [ + "\"check\" | \"uncheck\"" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.isEuiSwitchChecked", + "type": "Function", + "tags": [], + "label": "isEuiSwitchChecked", + "description": [], + "signature": [ + "(selector: string) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.isEuiSwitchChecked.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.setEuiSwitch", + "type": "Function", + "tags": [], + "label": "setEuiSwitch", + "description": [], + "signature": [ + "(selector: string, state: \"check\" | \"uncheck\") => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.setEuiSwitch.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.setEuiSwitch.$2", + "type": "CompoundType", + "tags": [], + "label": "state", + "description": [], + "signature": [ + "\"check\" | \"uncheck\"" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/ftr-common-functional-ui-services", "id": "def-common.WebElementWrapper", @@ -9993,6 +11890,21 @@ } ], "misc": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.Browser", + "type": "Type", + "tags": [], + "label": "Browser", + "description": [], + "signature": [ + "BrowserService" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/browser.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "@kbn/ftr-common-functional-ui-services", "id": "def-common.FtrProviderContext", @@ -10054,7 +11966,23 @@ }, ") => Promise<", "FindService", - ">; }, {}, ProvidedTypeMap<{ retry: typeof ", + ">; testSubjects: typeof ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.TestSubjects", + "text": "TestSubjects" + }, + "; browser: (ctx: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => Promise; }, {}, ProvidedTypeMap<{ retry: typeof ", { "pluginId": "@kbn/ftr-common-functional-services", "scope": "common", @@ -10100,7 +12028,23 @@ }, ") => Promise<", "FindService", - ">; }>, ProvidedTypeMap<{}>>" + ">; testSubjects: typeof ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.TestSubjects", + "text": "TestSubjects" + }, + "; browser: (ctx: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => Promise; }>, ProvidedTypeMap<{}>>" ], "path": "packages/kbn-ftr-common-functional-ui-services/services/ftr_provider_context.ts", "deprecated": false, @@ -10533,7 +12477,23 @@ }, ") => Promise<", "FindService", - ">; }, {}, ProvidedTypeMap<{ retry: typeof ", + ">; testSubjects: typeof ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.TestSubjects", + "text": "TestSubjects" + }, + "; browser: (ctx: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => Promise; }, {}, ProvidedTypeMap<{ retry: typeof ", { "pluginId": "@kbn/ftr-common-functional-services", "scope": "common", @@ -10579,7 +12539,23 @@ }, ") => Promise<", "FindService", - ">; }>, ProvidedTypeMap<{}>>" + ">; testSubjects: typeof ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.TestSubjects", + "text": "TestSubjects" + }, + "; browser: (ctx: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => Promise; }>, ProvidedTypeMap<{}>>" ], "path": "packages/kbn-ftr-common-functional-ui-services/services/retry_on_stale.ts", "deprecated": false, @@ -10683,7 +12659,23 @@ }, ") => Promise<", "FindService", - ">; }, {}, ProvidedTypeMap<{ retry: typeof ", + ">; testSubjects: typeof ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.TestSubjects", + "text": "TestSubjects" + }, + "; browser: (ctx: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => Promise; }, {}, ProvidedTypeMap<{ retry: typeof ", { "pluginId": "@kbn/ftr-common-functional-services", "scope": "common", @@ -10729,7 +12721,23 @@ }, ") => Promise<", "FindService", - ">; }>, ProvidedTypeMap<{}>>" + ">; testSubjects: typeof ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.TestSubjects", + "text": "TestSubjects" + }, + "; browser: (ctx: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => Promise; }>, ProvidedTypeMap<{}>>" ], "path": "packages/kbn-ftr-common-functional-ui-services/services/remote/remote.ts", "deprecated": false, @@ -10823,7 +12831,23 @@ }, ") => Promise<", "FindService", - ">; }, {}, ProvidedTypeMap<{ retry: typeof ", + ">; testSubjects: typeof ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.TestSubjects", + "text": "TestSubjects" + }, + "; browser: (ctx: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => Promise; }, {}, ProvidedTypeMap<{ retry: typeof ", { "pluginId": "@kbn/ftr-common-functional-services", "scope": "common", @@ -10869,13 +12893,220 @@ }, ") => Promise<", "FindService", - ">; }>, ProvidedTypeMap<{}>>" + ">; testSubjects: typeof ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.TestSubjects", + "text": "TestSubjects" + }, + "; browser: (ctx: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => Promise; }>, ProvidedTypeMap<{}>>" ], "path": "packages/kbn-ftr-common-functional-ui-services/services/find.ts", "deprecated": false, "trackAdoption": false } ] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.services.testSubjects", + "type": "Object", + "tags": [], + "label": "testSubjects", + "description": [], + "signature": [ + "typeof ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.TestSubjects", + "text": "TestSubjects" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/all.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.services.browser", + "type": "Function", + "tags": [], + "label": "browser", + "description": [], + "signature": [ + "(ctx: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/all.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.services.browser.$1", + "type": "Object", + "tags": [], + "label": "ctx", + "description": [], + "signature": [ + { + "pluginId": "@kbn/test", + "scope": "common", + "docId": "kibKbnTestPluginApi", + "section": "def-common.GenericFtrProviderContext", + "text": "GenericFtrProviderContext" + }, + "<{ retry: typeof ", + { + "pluginId": "@kbn/ftr-common-functional-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalServicesPluginApi", + "section": "def-common.RetryService", + "text": "RetryService" + }, + "; retryOnStale: ({ getService }: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => { (fn: () => Promise): Promise; wrap(fn: (...args: Args) => Promise): (...args: Args) => Promise; }; __webdriver__: ({ getService }: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => Promise<{ driver: ", + "WebDriver", + "; browserType: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.Browsers", + "text": "Browsers" + }, + "; consoleLog$: ", + "Observable", + "<{ message: string; level: string; }>; }>; find: (ctx: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => Promise<", + "FindService", + ">; testSubjects: typeof ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.TestSubjects", + "text": "TestSubjects" + }, + "; browser: (ctx: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => Promise; }, {}, ProvidedTypeMap<{ retry: typeof ", + { + "pluginId": "@kbn/ftr-common-functional-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalServicesPluginApi", + "section": "def-common.RetryService", + "text": "RetryService" + }, + "; retryOnStale: ({ getService }: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => { (fn: () => Promise): Promise; wrap(fn: (...args: Args) => Promise): (...args: Args) => Promise; }; __webdriver__: ({ getService }: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => Promise<{ driver: ", + "WebDriver", + "; browserType: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.Browsers", + "text": "Browsers" + }, + "; consoleLog$: ", + "Observable", + "<{ message: string; level: string; }>; }>; find: (ctx: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => Promise<", + "FindService", + ">; testSubjects: typeof ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.TestSubjects", + "text": "TestSubjects" + }, + "; browser: (ctx: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => Promise; }>, ProvidedTypeMap<{}>>" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/browser.ts", + "deprecated": false, + "trackAdoption": false + } + ] } ], "initialIsOpen": false diff --git a/api_docs/kbn_ftr_common_functional_ui_services.mdx b/api_docs/kbn_ftr_common_functional_ui_services.mdx index b7bbc38d6d278..ce8f66a087e0c 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-09 +date: 2024-01-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ftr-common-functional-ui-services'] --- import kbnFtrCommonFunctionalUiServicesObj from './kbn_ftr_common_functional_ui_services.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/appex-qa](https://github.com/orgs/elastic/teams/appex-qa) for | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 435 | 3 | 400 | 1 | +| 550 | 6 | 510 | 2 | ## Common diff --git a/api_docs/kbn_generate.mdx b/api_docs/kbn_generate.mdx index df1d4b5d48bb6..13c567bf4c876 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-09 +date: 2024-01-10 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 3bb1ee73c6efa..366fd43a229f0 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-09 +date: 2024-01-10 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 bc26520ee794e..9edea8bb00fe2 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-09 +date: 2024-01-10 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 2a86d798ed044..179f64f4c80d7 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-09 +date: 2024-01-10 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 bf2ea11c79c15..2d09bb1ad6c3b 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-09 +date: 2024-01-10 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 c401601afea1f..88e29bdba38b8 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-09 +date: 2024-01-10 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 8c5942bf72f95..a305e2f035475 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-09 +date: 2024-01-10 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 485e7cd456945..5118c9fdab132 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-09 +date: 2024-01-10 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 04c609c393b3e..7fa2b3eff755c 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-09 +date: 2024-01-10 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 17ea1fb66ad29..e1778c26641d1 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-09 +date: 2024-01-10 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 ae2b1561796f8..7954829a1053c 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-09 +date: 2024-01-10 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 4832acec14b88..db680a6ff39de 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-09 +date: 2024-01-10 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 f0e8ab948d34e..e1cd549532dca 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-09 +date: 2024-01-10 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 d75ef7aba6b44..629f1b587f0cc 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-09 +date: 2024-01-10 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 6a7a5e28b47e7..f25c80f25fbbc 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-09 +date: 2024-01-10 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 fcdcbebf72c92..2b9d7cd203338 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-09 +date: 2024-01-10 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 54ed288b62e5b..974e43f0e50ff 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-09 +date: 2024-01-10 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 9ad788f443b3e..ab9fa38b63107 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-09 +date: 2024-01-10 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 1e408000e7477..322820623edfc 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-09 +date: 2024-01-10 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 2dbce407cad2c..4ba4b9ecca50f 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-09 +date: 2024-01-10 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 778de0a9d67d5..cc749aa8d43f8 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-09 +date: 2024-01-10 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 40ada10141476..69529cecb770b 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-09 +date: 2024-01-10 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 da3a6a4a96fc7..ac574a9cf469f 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-09 +date: 2024-01-10 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 4fc374ace543f..49387a70d70e0 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-09 +date: 2024-01-10 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 bc8d34762cb7c..b52b7cbd7e111 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-09 +date: 2024-01-10 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 4b345dbf295f5..54cd44786bed6 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-09 +date: 2024-01-10 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 539bf5a9d9c2d..6aa0410fa5234 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-09 +date: 2024-01-10 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 62210552da295..c116ed614e736 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-09 +date: 2024-01-10 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 4f4af3b994f5c..4d9a605903f1f 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-09 +date: 2024-01-10 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 9d355f3474bfc..9fba25ab30941 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-09 +date: 2024-01-10 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 55110af4dad16..dcdb52445333a 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-09 +date: 2024-01-10 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 af94dca61c48b..507689be79897 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-09 +date: 2024-01-10 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 8a0c7b469b510..7a9e71afbb8bd 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-09 +date: 2024-01-10 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 d9703f1492bb5..84172dc1bf9ad 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-09 +date: 2024-01-10 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 5bd50efaa53ad..b2407a9aeb3bc 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-09 +date: 2024-01-10 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 aa456b8bfec04..fc09e0c1b738c 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-09 +date: 2024-01-10 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 eca900e6e6345..92c6f487b7cb8 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-09 +date: 2024-01-10 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 30510e0f2d184..ccb32f003a2d3 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-09 +date: 2024-01-10 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 36c64ab1e0dce..b726bddba090a 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-09 +date: 2024-01-10 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 aa450d1cf8283..d0d7c078673ac 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-09 +date: 2024-01-10 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 4a40bea238c01..f0a5157c4cf55 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-09 +date: 2024-01-10 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 d5b2ad79c3906..7fb006c5fb359 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-09 +date: 2024-01-10 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 6b154149c4208..42e6823940efe 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-09 +date: 2024-01-10 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 93af52df9275c..30b81e404f39f 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-09 +date: 2024-01-10 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 87cd5300e7bfd..bb3758ef4024e 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-09 +date: 2024-01-10 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 8240996a953b4..b9dee615a1b29 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-09 +date: 2024-01-10 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 8154d41556a58..1426864d74714 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-09 +date: 2024-01-10 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 0ce3309130543..0db1983354b0c 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-09 +date: 2024-01-10 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 25a3e43c2c3ef..22cab8fa64891 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-09 +date: 2024-01-10 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 7a7fd57be6569..b1b9093ce5e08 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-09 +date: 2024-01-10 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 70f1b5400bbd1..f7c95745d5a38 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-09 +date: 2024-01-10 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 cc496567a3020..e809e58379c67 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-09 +date: 2024-01-10 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 24d37f89a3372..72ae2c2f7c086 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-09 +date: 2024-01-10 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 9a78090fc5c4f..21a0999419f28 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-09 +date: 2024-01-10 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 a56e3d6920cf3..459e2a0807fe1 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-09 +date: 2024-01-10 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 6cc0ec28d2dd0..812351db45c26 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-09 +date: 2024-01-10 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 67e830575a32f..aebc86ad06cbc 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-09 +date: 2024-01-10 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 a99edf80bb89b..be53c4fb7dece 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-09 +date: 2024-01-10 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 4db9131654439..293ba5e124d2a 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-09 +date: 2024-01-10 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 4757d180a1ce0..717f0869c97d6 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-09 +date: 2024-01-10 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 ee0c3641c7ea7..d83143080842b 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-09 +date: 2024-01-10 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 e93687e6c4bdc..bb5f391d8080a 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-09 +date: 2024-01-10 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 3155958383dc2..5463992a81c5f 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-09 +date: 2024-01-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-url-state'] --- import kbnMlUrlStateObj from './kbn_ml_url_state.devdocs.json'; diff --git a/api_docs/kbn_monaco.mdx b/api_docs/kbn_monaco.mdx index 2ec7d1e88dd69..1217b89aee10a 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-09 +date: 2024-01-10 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 ebd3887d79111..0c70b7ef16859 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-09 +date: 2024-01-10 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 d0bf0645d5c87..c9c4222cfc38f 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-09 +date: 2024-01-10 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 74bd99e5374c4..6f5e28109bb17 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-09 +date: 2024-01-10 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 c4c9ba86d3069..933b05d18d9ae 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-09 +date: 2024-01-10 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 31443059b311f..9e90f4ccf3216 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-09 +date: 2024-01-10 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 ced116a133f43..e09ae38ed3763 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-09 +date: 2024-01-10 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 fb6e442d25fdf..4e09a8c4385ea 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-09 +date: 2024-01-10 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 e99aae626fca0..a00290c8c57af 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-09 +date: 2024-01-10 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 e599fb3b2276c..6aa749289b871 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-09 +date: 2024-01-10 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 6ca85d7d4f16c..d14e905963754 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-09 +date: 2024-01-10 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 177d422ba5840..6257d2709b2c5 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-09 +date: 2024-01-10 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_generator.mdx b/api_docs/kbn_plugin_generator.mdx index 5e598e51b8be9..bd0edd2a90319 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-09 +date: 2024-01-10 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 fbeccdd5e9555..34f71b6e41f4e 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-09 +date: 2024-01-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-helpers'] --- import kbnPluginHelpersObj from './kbn_plugin_helpers.devdocs.json'; diff --git a/api_docs/kbn_profiling_utils.mdx b/api_docs/kbn_profiling_utils.mdx index 36005273ba657..5de7d0e47e26f 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-09 +date: 2024-01-10 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 94ba7896b3bbc..8021386775c14 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-09 +date: 2024-01-10 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 c47c1d1ad88e8..696f0c431b07c 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-09 +date: 2024-01-10 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 5d23000b6a778..03d0527bfcf6d 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-09 +date: 2024-01-10 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 c0c4a97c69a0e..af262730f32b4 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-09 +date: 2024-01-10 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 debe0245ac25f..3f28c91d31a00 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-09 +date: 2024-01-10 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 aa7c5b02c3ce9..19db469068f75 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-09 +date: 2024-01-10 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 a028a610b479c..1636269027038 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-09 +date: 2024-01-10 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 40e139be5cc32..84de1467f6e18 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-09 +date: 2024-01-10 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 44ed77feb557d..b98b39f8abde5 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-09 +date: 2024-01-10 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 dca24877233cf..c1fb136d7d31b 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-09 +date: 2024-01-10 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 eff438bd76af7..0f242ce9adfff 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-09 +date: 2024-01-10 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 b08920ab5e0db..e1dbe1cadd19c 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-09 +date: 2024-01-10 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 c7142e36b95cf..600441651b87e 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-09 +date: 2024-01-10 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 94e5c2f7d91fc..a95e4fb6fd8bd 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-09 +date: 2024-01-10 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 24b2b6e847573..5d70342553ad3 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-09 +date: 2024-01-10 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 8caea67f16b93..9d895dfe95ac1 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-09 +date: 2024-01-10 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 a445e92741843..a451e83e67454 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-09 +date: 2024-01-10 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 bcbd518c9f69b..91d442826e800 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-09 +date: 2024-01-10 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 163b722b4cf1f..5343c26cbd04c 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-09 +date: 2024-01-10 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 de6cc26b69ec4..573348535fc8f 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-09 +date: 2024-01-10 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 6220800039196..fcba5b8226363 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-09 +date: 2024-01-10 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 15658f2c0ebef..3e92b25c9707b 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-09 +date: 2024-01-10 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 4dbd51e599a95..8ad352712c9f6 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-09 +date: 2024-01-10 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 0128a259b81c6..363093f86afd0 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-09 +date: 2024-01-10 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 f119b86d53ffc..4651d1a954229 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-09 +date: 2024-01-10 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 74a95abec7248..d99a9fa9b0acc 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-09 +date: 2024-01-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rrule'] --- import kbnRruleObj from './kbn_rrule.devdocs.json'; diff --git a/api_docs/kbn_rule_data_utils.devdocs.json b/api_docs/kbn_rule_data_utils.devdocs.json index e4de662c8e2a8..16f2a0e746ee8 100644 --- a/api_docs/kbn_rule_data_utils.devdocs.json +++ b/api_docs/kbn_rule_data_utils.devdocs.json @@ -1459,7 +1459,7 @@ "label": "AlertConsumers", "description": [], "signature": [ - "\"ml\" | \"uptime\" | \"siem\" | \"observability\" | \"stackAlerts\" | \"apm\" | \"logs\" | \"infrastructure\" | \"slo\"" + "\"ml\" | \"uptime\" | \"siem\" | \"observability\" | \"stackAlerts\" | \"apm\" | \"logs\" | \"infrastructure\" | \"slo\" | \"AlertingExample\"" ], "path": "packages/kbn-rule-data-utils/src/alerts_as_data_rbac.ts", "deprecated": false, @@ -1804,7 +1804,7 @@ "label": "ValidFeatureId", "description": [], "signature": [ - "\"ml\" | \"uptime\" | \"siem\" | \"observability\" | \"stackAlerts\" | \"apm\" | \"logs\" | \"infrastructure\" | \"slo\"" + "\"ml\" | \"uptime\" | \"siem\" | \"observability\" | \"stackAlerts\" | \"apm\" | \"logs\" | \"infrastructure\" | \"slo\" | \"AlertingExample\"" ], "path": "packages/kbn-rule-data-utils/src/alerts_as_data_rbac.ts", "deprecated": false, @@ -1853,7 +1853,7 @@ "\nregistering a new instance of the rule data client\nin a new plugin will require updating the below data structure\nto include the index name where the alerts as data will be written to." ], "signature": [ - "{ readonly APM: \"apm\"; readonly LOGS: \"logs\"; readonly INFRASTRUCTURE: \"infrastructure\"; readonly OBSERVABILITY: \"observability\"; readonly SLO: \"slo\"; readonly SIEM: \"siem\"; readonly UPTIME: \"uptime\"; readonly ML: \"ml\"; readonly STACK_ALERTS: \"stackAlerts\"; }" + "{ readonly APM: \"apm\"; readonly LOGS: \"logs\"; readonly INFRASTRUCTURE: \"infrastructure\"; readonly OBSERVABILITY: \"observability\"; readonly SLO: \"slo\"; readonly SIEM: \"siem\"; readonly UPTIME: \"uptime\"; readonly ML: \"ml\"; readonly STACK_ALERTS: \"stackAlerts\"; readonly EXAMPLE: \"AlertingExample\"; }" ], "path": "packages/kbn-rule-data-utils/src/alerts_as_data_rbac.ts", "deprecated": false, diff --git a/api_docs/kbn_rule_data_utils.mdx b/api_docs/kbn_rule_data_utils.mdx index 445122f081716..30695f23f9c64 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-09 +date: 2024-01-10 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 6f9f125668868..1f84dd82b52d1 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-09 +date: 2024-01-10 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 cfd5f7d90453e..a9e515016d134 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-09 +date: 2024-01-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-api-panels'] --- import kbnSearchApiPanelsObj from './kbn_search_api_panels.devdocs.json'; diff --git a/api_docs/kbn_search_connectors.mdx b/api_docs/kbn_search_connectors.mdx index c8f3be036b78a..58f1e4db1f39f 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-09 +date: 2024-01-10 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 b59548b4d884d..364b6b4d4ee02 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-09 +date: 2024-01-10 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 e66706a4276ef..989986aeeaa0e 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-09 +date: 2024-01-10 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 8b0ceef725185..7b91198428285 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-09 +date: 2024-01-10 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 d7869a0971f70..1df28970c1135 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-09 +date: 2024-01-10 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 f448a566557d8..d90003f65f0dc 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-09 +date: 2024-01-10 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 1324ea893774c..537991a977d70 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-09 +date: 2024-01-10 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 8b28d560672d4..7d288aa4140e6 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-09 +date: 2024-01-10 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 9f2d5d2434028..c021ba0671861 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-09 +date: 2024-01-10 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 4b0049ab96764..76ff1886333e6 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-09 +date: 2024-01-10 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 8f430c228791f..5275573a373fb 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-09 +date: 2024-01-10 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 b82aa4c2c07d3..b0030c3f07e40 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-09 +date: 2024-01-10 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 f614089ae5452..66554824eaf5a 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-09 +date: 2024-01-10 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 2f1336a7dc3ce..c710cb767f644 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-09 +date: 2024-01-10 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 5cf91181bf1b9..84ae061bf4834 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-09 +date: 2024-01-10 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 a4bad75aa132e..9182ef38f0f1a 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-09 +date: 2024-01-10 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 f368111bd033c..3d017b94ec61f 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-09 +date: 2024-01-10 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 bec2f069d1bbc..0f6cd22a8c697 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-09 +date: 2024-01-10 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 20db10907101a..cdbf474fdaa67 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-09 +date: 2024-01-10 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 0adb9b6f63e11..eabc132247261 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-09 +date: 2024-01-10 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 53b5f79a2fe41..f45d4393d8992 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-09 +date: 2024-01-10 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 a624988e8126e..29851f71f688e 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-09 +date: 2024-01-10 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 a81f596fda85b..dd438407960e0 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-09 +date: 2024-01-10 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 f8a3bd2cf6d67..4f2733851b1d8 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-09 +date: 2024-01-10 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 203587a90720b..7183adf3140cd 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-09 +date: 2024-01-10 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 a70f5362a388d..228b1cbe4ccfe 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-09 +date: 2024-01-10 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 5917c21d0ab6f..29087fa602f40 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-09 +date: 2024-01-10 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 40cf589bfc02c..8989d7643676a 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-09 +date: 2024-01-10 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 9e417d39d435d..44e8664f7c056 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-09 +date: 2024-01-10 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 5ef85d382c838..256040f55461d 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-09 +date: 2024-01-10 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 cb61cab35fc67..89f00706d8393 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-09 +date: 2024-01-10 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 ee313978a8bf6..b2df9a7a7a1ae 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-09 +date: 2024-01-10 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 47c87668870ba..8e95ac9d2f5fa 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-09 +date: 2024-01-10 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 cbbef0ed090d6..024b95b38a43e 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-09 +date: 2024-01-10 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 ac29aacfb5211..ee92c872a5dd7 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-09 +date: 2024-01-10 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 0b8c6adf3c518..d14d1dfc78938 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-09 +date: 2024-01-10 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 226ee27b74e0e..771fb5c586905 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-09 +date: 2024-01-10 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 6129156cb6ff8..a3312c2e949db 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-09 +date: 2024-01-10 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 fc833ceb79690..a2dbb14c1a4a1 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-09 +date: 2024-01-10 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 df3fabde0f8e2..62e7c799c4390 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-09 +date: 2024-01-10 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 237bb002e1b9c..08d1240422caf 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-09 +date: 2024-01-10 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 ab498eeed2fb7..f94ef13b13818 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-09 +date: 2024-01-10 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 cbfe46b26a800..ebeef794df8f0 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-09 +date: 2024-01-10 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 d4f17e40de87e..18c296a8cfbef 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-09 +date: 2024-01-10 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 04645154530c3..164e90879da29 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-09 +date: 2024-01-10 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 961a3bdb8d84d..4614dbeea4030 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-09 +date: 2024-01-10 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 67ab4ecd67eb2..dfb0715e7b67a 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-09 +date: 2024-01-10 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 3e0c6884efa51..978433f7b4747 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-09 +date: 2024-01-10 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 15afccc0d1fbb..9db4f01568b11 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-09 +date: 2024-01-10 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 0681abb33b54e..7b1ec6051ecf8 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-09 +date: 2024-01-10 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 f81d4d89abea2..6d85e8a79f797 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-09 +date: 2024-01-10 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 094327cbfcbdd..c75d20b855af4 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-09 +date: 2024-01-10 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 cf8ad32beda21..bdd8ee8a674ce 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-09 +date: 2024-01-10 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 59c23a4fa4ada..7afcd5556ea48 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-09 +date: 2024-01-10 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 330f3ece06738..1b789720c9783 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-09 +date: 2024-01-10 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 611e723cc87d7..d866569888e94 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-09 +date: 2024-01-10 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 5b1050dbf0150..70f71a35aced2 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-09 +date: 2024-01-10 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 f6c61ce183c46..d2340ebf9ffc1 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-09 +date: 2024-01-10 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 22e41970269f3..465eec36559aa 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-09 +date: 2024-01-10 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 9bb5192d00679..cda2ef2be953d 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-09 +date: 2024-01-10 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 fae48ad40b23e..686455c7b2485 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-09 +date: 2024-01-10 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 0909f4c53caca..2c09632a44892 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-09 +date: 2024-01-10 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 ad002a116fb1d..c67ab4f66cd93 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-09 +date: 2024-01-10 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 e7ab1dffe3686..ba0e3b9192303 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-09 +date: 2024-01-10 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 d762085c8410e..7deaecc2de97d 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-09 +date: 2024-01-10 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 a07446360cb83..f7115b0705ff1 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-09 +date: 2024-01-10 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 8e6fa23752881..b0dded677c904 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-09 +date: 2024-01-10 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 4a97933f1df78..7009005f36e04 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-09 +date: 2024-01-10 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 10c5ff5fef4d8..c226003a3ab0d 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-09 +date: 2024-01-10 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 04c626a37b39b..2643f6cd09d6a 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-09 +date: 2024-01-10 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 2ab74aadfa500..0f68c689f8454 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-09 +date: 2024-01-10 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 1acfe67eb2ec2..375fb7530c7b8 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-09 +date: 2024-01-10 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 ff6d2ef459bca..5f25161782427 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-09 +date: 2024-01-10 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 13f052310b9d1..e29cd04ee3f1b 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-09 +date: 2024-01-10 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 4b500d62607ae..3ed1e2d779ffd 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-09 +date: 2024-01-10 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 c14380a9f8011..fe666276e1a32 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-09 +date: 2024-01-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-utility'] --- import kbnSharedUxUtilityObj from './kbn_shared_ux_utility.devdocs.json'; diff --git a/api_docs/kbn_slo_schema.mdx b/api_docs/kbn_slo_schema.mdx index a739366027ba1..8bbb123744580 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-09 +date: 2024-01-10 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 de037bb1b232b..a6d4bb58a834c 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-09 +date: 2024-01-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/some-dev-log'] --- import kbnSomeDevLogObj from './kbn_some_dev_log.devdocs.json'; diff --git a/api_docs/kbn_std.mdx b/api_docs/kbn_std.mdx index 92839ffa260ce..d1e503a63a653 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-09 +date: 2024-01-10 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 d87d82b0649a9..e051727ca50d3 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-09 +date: 2024-01-10 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 0605cf5b05715..b46ebfa352bce 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-09 +date: 2024-01-10 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 fffc57e5bd20b..80a8cd8aab675 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-09 +date: 2024-01-10 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 555168d1bad75..f6e2d4018b777 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-09 +date: 2024-01-10 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 775200141fb58..067811e1afc93 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-09 +date: 2024-01-10 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 112d3ac8ec2e4..b1cd81442242c 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-09 +date: 2024-01-10 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 c2a4b93cdcd4a..4acc6bb4db9b8 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-09 +date: 2024-01-10 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 e08b89f8ddbaf..8a9c23e16570c 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-09 +date: 2024-01-10 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 ba159d1edfcbc..b0deb7474f21f 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-09 +date: 2024-01-10 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 ca575fc20069a..6ed41f48776f0 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-09 +date: 2024-01-10 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 bd43a05a66e8e..fc5ed5aca7f88 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-09 +date: 2024-01-10 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 b249e0f4a7a8b..94c6a50c8fadb 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-09 +date: 2024-01-10 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 9ae56fa14e443..a11338cf308a9 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-09 +date: 2024-01-10 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 ee28545ccb1e9..10f8196139a06 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-09 +date: 2024-01-10 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 a501a43da78f3..b2cd05b82f04f 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-09 +date: 2024-01-10 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 a17ef933c3fe7..0f11bc388f9cc 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-09 +date: 2024-01-10 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 474b77f5a5ce3..77d315eb42a38 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-09 +date: 2024-01-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unified-doc-viewer'] --- import kbnUnifiedDocViewerObj from './kbn_unified_doc_viewer.devdocs.json'; diff --git a/api_docs/kbn_unified_field_list.devdocs.json b/api_docs/kbn_unified_field_list.devdocs.json index 1f322e1c28603..da24a60d27f67 100644 --- a/api_docs/kbn_unified_field_list.devdocs.json +++ b/api_docs/kbn_unified_field_list.devdocs.json @@ -883,7 +883,15 @@ "label": "loadFieldExisting", "description": [], "signature": [ - "(params: FetchFieldExistenceParams) => Promise<{ existingFieldNames: string[]; indexPatternTitle: string; }>" + "(params: FetchFieldExistenceParams) => Promise<{ existingFieldNames: string[]; indexPatternTitle: string; newFields?: ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.FieldSpec", + "text": "FieldSpec" + }, + "[] | undefined; }>" ], "path": "packages/kbn-unified-field-list/src/services/field_existing/index.ts", "deprecated": false, @@ -1403,7 +1411,15 @@ "section": "def-common.ExistenceFetchStatus", "text": "ExistenceFetchStatus" }, - "; isFieldsExistenceInfoUnavailable: (dataViewId: string) => boolean; }" + "; isFieldsExistenceInfoUnavailable: (dataViewId: string) => boolean; getNewFields: (dataViewId: string) => ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.FieldSpec", + "text": "FieldSpec" + }, + "[]; }" ], "path": "packages/kbn-unified-field-list/src/hooks/use_existing_fields.ts", "deprecated": false, @@ -1478,7 +1494,7 @@ "label": "useGroupedFields", "description": [], "signature": [ - "({\n dataViewId,\n allFields,\n services,\n isAffectedByGlobalFilter = false,\n popularFieldsLimit,\n sortedSelectedFields,\n getCustomFieldType,\n onOverrideFieldGroupDetails,\n onSupportedFieldFilter,\n onSelectedFieldFilter,\n}: ", + "({\n dataViewId,\n allFields,\n services,\n isAffectedByGlobalFilter = false,\n popularFieldsLimit,\n sortedSelectedFields,\n getCustomFieldType,\n onOverrideFieldGroupDetails,\n onSupportedFieldFilter,\n onSelectedFieldFilter,\n getNewFieldsBySpec,\n}: ", { "pluginId": "@kbn/unified-field-list", "scope": "common", @@ -1505,7 +1521,7 @@ "id": "def-common.useGroupedFields.$1", "type": "Object", "tags": [], - "label": "{\n dataViewId,\n allFields,\n services,\n isAffectedByGlobalFilter = false,\n popularFieldsLimit,\n sortedSelectedFields,\n getCustomFieldType,\n onOverrideFieldGroupDetails,\n onSupportedFieldFilter,\n onSelectedFieldFilter,\n}", + "label": "{\n dataViewId,\n allFields,\n services,\n isAffectedByGlobalFilter = false,\n popularFieldsLimit,\n sortedSelectedFields,\n getCustomFieldType,\n onOverrideFieldGroupDetails,\n onSupportedFieldFilter,\n onSelectedFieldFilter,\n getNewFieldsBySpec,\n}", "description": [], "signature": [ { @@ -1921,6 +1937,27 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "@kbn/unified-field-list", + "id": "def-common.ExistingFieldsInfo.newFields", + "type": "Array", + "tags": [], + "label": "newFields", + "description": [], + "signature": [ + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.FieldSpec", + "text": "FieldSpec" + }, + "[] | undefined" + ], + "path": "packages/kbn-unified-field-list/src/hooks/use_existing_fields.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "@kbn/unified-field-list", "id": "def-common.ExistingFieldsInfo.numberOfFetches", @@ -2077,6 +2114,46 @@ } ], "returnComment": [] + }, + { + "parentPluginId": "@kbn/unified-field-list", + "id": "def-common.ExistingFieldsReader.getNewFields", + "type": "Function", + "tags": [], + "label": "getNewFields", + "description": [], + "signature": [ + "(dataViewId: string) => ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.FieldSpec", + "text": "FieldSpec" + }, + "[]" + ], + "path": "packages/kbn-unified-field-list/src/hooks/use_existing_fields.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/unified-field-list", + "id": "def-common.ExistingFieldsReader.getNewFields.$1", + "type": "string", + "tags": [], + "label": "dataViewId", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-unified-field-list/src/hooks/use_existing_fields.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] } ], "initialIsOpen": false @@ -4585,6 +4662,36 @@ } ], "returnComment": [] + }, + { + "parentPluginId": "@kbn/unified-field-list", + "id": "def-common.GroupedFieldsParams.getNewFieldsBySpec", + "type": "Function", + "tags": [], + "label": "getNewFieldsBySpec", + "description": [], + "signature": [ + "((fields: ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.FieldSpec", + "text": "FieldSpec" + }, + "[], dataView: ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + " | null) => T[]) | undefined" + ], + "path": "packages/kbn-unified-field-list/src/hooks/use_grouped_fields.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false @@ -4660,6 +4767,31 @@ "path": "packages/kbn-unified-field-list/src/hooks/use_grouped_fields.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "@kbn/unified-field-list", + "id": "def-common.GroupedFieldsResult.allFieldsModified", + "type": "CompoundType", + "tags": [], + "label": "allFieldsModified", + "description": [], + "signature": [ + "T[] | null" + ], + "path": "packages/kbn-unified-field-list/src/hooks/use_grouped_fields.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/unified-field-list", + "id": "def-common.GroupedFieldsResult.hasNewFields", + "type": "boolean", + "tags": [], + "label": "hasNewFields", + "description": [], + "path": "packages/kbn-unified-field-list/src/hooks/use_grouped_fields.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false diff --git a/api_docs/kbn_unified_field_list.mdx b/api_docs/kbn_unified_field_list.mdx index 25a519a5ea98b..60cffe63be574 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-09 +date: 2024-01-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unified-field-list'] --- import kbnUnifiedFieldListObj from './kbn_unified_field_list.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/k | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 285 | 0 | 261 | 9 | +| 291 | 0 | 267 | 9 | ## Common diff --git a/api_docs/kbn_unsaved_changes_badge.mdx b/api_docs/kbn_unsaved_changes_badge.mdx index 034881c7abf4b..e8b74587187f7 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-09 +date: 2024-01-10 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 4d3a1dc4c1266..5193f52120247 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-09 +date: 2024-01-10 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 728f2cac7e2db..4ab592e9488f9 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-09 +date: 2024-01-10 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 0f9e7e74b7785..383b3c6942e20 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-09 +date: 2024-01-10 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 f95d010187c4c..45c53e329adb9 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-09 +date: 2024-01-10 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 dccddb856a913..b07408ff01d5a 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-09 +date: 2024-01-10 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 40b95539cf9c1..8881ea44f9fb5 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-09 +date: 2024-01-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utils'] --- import kbnUtilsObj from './kbn_utils.devdocs.json'; diff --git a/api_docs/kbn_visualization_ui_components.devdocs.json b/api_docs/kbn_visualization_ui_components.devdocs.json index fef2bfc2693e2..f22184e80129c 100644 --- a/api_docs/kbn_visualization_ui_components.devdocs.json +++ b/api_docs/kbn_visualization_ui_components.devdocs.json @@ -313,7 +313,7 @@ "label": "DimensionTrigger", "description": [], "signature": [ - "({ id, label, color, dataTestSubj, }: { label: React.ReactNode; id?: string | undefined; color?: \"warning\" | \"success\" | \"default\" | \"subdued\" | \"accent\" | \"danger\" | \"ghost\" | ", + "({ id, label, color, dataTestSubj, }: { label: React.ReactNode; id?: string | undefined; color?: \"default\" | \"warning\" | \"success\" | \"subdued\" | \"accent\" | \"danger\" | \"ghost\" | ", "Property", ".Color | undefined; dataTestSubj?: string | undefined; }) => JSX.Element" ], @@ -368,7 +368,7 @@ "label": "color", "description": [], "signature": [ - "\"warning\" | \"success\" | \"default\" | \"subdued\" | \"accent\" | \"danger\" | \"ghost\" | ", + "\"default\" | \"warning\" | \"success\" | \"subdued\" | \"accent\" | \"danger\" | \"ghost\" | ", "Property", ".Color | undefined" ], diff --git a/api_docs/kbn_visualization_ui_components.mdx b/api_docs/kbn_visualization_ui_components.mdx index 138514936b42d..adeacdf632f8d 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-09 +date: 2024-01-10 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 d06e22f97a535..a2a5eda7898d9 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-09 +date: 2024-01-10 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 e6dbc8d653f35..f1313775b8f0f 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-09 +date: 2024-01-10 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 3cc570245c8e3..a84091dec0ea7 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-09 +date: 2024-01-10 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 fe205112ab251..19b6f5243f6f5 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-09 +date: 2024-01-10 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 d6a83e0fe2e0d..2ca8c9c7d0681 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-09 +date: 2024-01-10 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 c990a41d29f62..903fb3986f191 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-09 +date: 2024-01-10 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 fc43ff581d068..634de92469365 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-09 +date: 2024-01-10 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 e524828a1412e..56517e8fdaf3a 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-09 +date: 2024-01-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kubernetesSecurity'] --- import kubernetesSecurityObj from './kubernetes_security.devdocs.json'; diff --git a/api_docs/lens.mdx b/api_docs/lens.mdx index 98f2991464881..d4ec37b11dd04 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-09 +date: 2024-01-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lens'] --- import lensObj from './lens.devdocs.json'; diff --git a/api_docs/license_api_guard.mdx b/api_docs/license_api_guard.mdx index ed238505d912e..438be1fab2b36 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-09 +date: 2024-01-10 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 d2df8e260b72b..b377f8e30d497 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-09 +date: 2024-01-10 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 517648514862c..5e06440928d0f 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-09 +date: 2024-01-10 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 f4d58c2361f38..88d3fa7e26344 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-09 +date: 2024-01-10 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 c3ff0aee5064f..8e6c99b04d857 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-09 +date: 2024-01-10 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 4b1b5ac3924d4..9d7fa31ff8866 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-09 +date: 2024-01-10 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 787d44f07c09f..6d12d4b2b9922 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-09 +date: 2024-01-10 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 8985f6099a3dc..182ed51e790ef 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-09 +date: 2024-01-10 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 42bb9d5a8e57f..c63917e8fcce4 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-09 +date: 2024-01-10 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 e336e9611e50d..34529063f6ba8 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-09 +date: 2024-01-10 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 ed93ea389fe59..1b6da0dfa7409 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-09 +date: 2024-01-10 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 8e1b5d2135931..6dc66b8f6d88e 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-09 +date: 2024-01-10 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 c885843ffd882..cb8d3584f0934 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-09 +date: 2024-01-10 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 70d8704d195f8..1cbb7e34c0163 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-09 +date: 2024-01-10 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 e607b380d4b63..e679d74b8db3c 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-09 +date: 2024-01-10 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 b3f02f7e33fcb..010ec55e6b227 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-09 +date: 2024-01-10 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 428fb21db5099..3d7a4619b8d4c 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-09 +date: 2024-01-10 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 46c20d18046ca..d26a67263e820 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-09 +date: 2024-01-10 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 950b2c48f3cf7..a2bec48afc349 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-09 +date: 2024-01-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'notifications'] --- import notificationsObj from './notifications.devdocs.json'; diff --git a/api_docs/observability.mdx b/api_docs/observability.mdx index b4b2e9bba8759..dc24a82943ec9 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-09 +date: 2024-01-10 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 5687934d5abda..e07410c93f589 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-09 +date: 2024-01-10 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 8552aa3044394..f2d04f2712035 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-09 +date: 2024-01-10 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 a0bc11d35ec89..43be77de22d0b 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-09 +date: 2024-01-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityOnboarding'] --- import observabilityOnboardingObj from './observability_onboarding.devdocs.json'; diff --git a/api_docs/observability_shared.mdx b/api_docs/observability_shared.mdx index 5375dcdd99a6e..5a29588bd96cf 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-09 +date: 2024-01-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityShared'] --- import observabilitySharedObj from './observability_shared.devdocs.json'; diff --git a/api_docs/osquery.mdx b/api_docs/osquery.mdx index 8cf878a580eb1..cf3a5fc86031e 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-09 +date: 2024-01-10 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 5ccc241b17e98..4386d8f6c1fb1 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-09 +date: 2024-01-10 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 a95b7891ab855..15ff01a666ce4 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-09 +date: 2024-01-10 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 | |--------------|----------|------------------------| -| 741 | 632 | 41 | +| 739 | 631 | 41 | ### Public API health stats | API Count | Any Count | Missing comments | Missing exports | |--------------|----------|-----------------|--------| -| 78626 | 237 | 67306 | 1697 | +| 78736 | 240 | 67427 | 1698 | ## Plugin Directory @@ -32,7 +32,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) | - | 2 | 0 | 2 | 0 | | | [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) | - | 2 | 0 | 2 | 0 | | | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | AIOps plugin maintained by ML team. | 70 | 1 | 4 | 1 | -| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 825 | 1 | 794 | 51 | +| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 830 | 1 | 799 | 51 | | | [@elastic/obs-ux-infra_services-team](https://github.com/orgs/elastic/teams/obs-ux-infra_services-team) | The user interface for Elastic APM | 29 | 0 | 29 | 125 | | | [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) | - | 9 | 0 | 9 | 0 | | | [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) | Asset manager plugin for entity assets (inventory, topology, etc) | 9 | 0 | 9 | 2 | @@ -47,7 +47,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-cloud-security-posture](https://github.com/orgs/elastic/teams/kibana-cloud-security-posture) | Defend for containers (D4C) | 52 | 0 | 43 | 2 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | Provides the necessary APIs to implement A/B testing scenarios, fetching the variations in configuration and reporting back metrics to track conversion rates of the experiments. | 12 | 0 | 0 | 0 | | cloudFullStory | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | When Kibana runs on Elastic Cloud, this plugin registers FullStory as a shipper for telemetry. | 0 | 0 | 0 | 0 | -| cloudGainsight | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | When Kibana runs on Elastic Cloud, this plugin registers Gainsight as a shipper for telemetry. | 0 | 0 | 0 | 0 | | cloudLinks | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | Adds the links to the Elastic Cloud console | 0 | 0 | 0 | 0 | | | [@elastic/kibana-cloud-security-posture](https://github.com/orgs/elastic/teams/kibana-cloud-security-posture) | The cloud security posture plugin | 14 | 0 | 2 | 2 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 13 | 0 | 13 | 1 | @@ -77,7 +76,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 99 | 3 | 97 | 3 | | | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | The Event Annotation service contains expressions for event annotations | 201 | 0 | 201 | 6 | | | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | The listing page for event annotations. | 15 | 0 | 15 | 0 | -| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 111 | 0 | 111 | 11 | +| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 112 | 0 | 112 | 11 | | | [@elastic/obs-ux-infra_services-team](https://github.com/orgs/elastic/teams/obs-ux-infra_services-team) | - | 130 | 0 | 130 | 14 | | | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds 'error' renderer to expressions | 17 | 0 | 15 | 2 | | | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Expression Gauge plugin adds a `gauge` renderer and function to the expression plugin. The renderer will display the `gauge` chart. | 59 | 0 | 59 | 2 | @@ -228,7 +227,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 27 | 3 | 27 | 0 | | | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 23 | 0 | 22 | 0 | | | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 33 | 0 | 33 | 0 | -| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 30 | 0 | 30 | 0 | +| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 31 | 0 | 31 | 0 | | | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 94 | 0 | 92 | 1 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 73 | 0 | 73 | 2 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 98 | 0 | 0 | 0 | @@ -237,7 +236,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 23 | 0 | 0 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 19 | 0 | 0 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 22 | 0 | 1 | 0 | -| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 18 | 0 | 2 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 17 | 0 | 17 | 0 | | | [@elastic/obs-ux-infra_services-team](https://github.com/orgs/elastic/teams/obs-ux-infra_services-team) | - | 34 | 0 | 34 | 8 | | | [@elastic/obs-ux-infra_services-team](https://github.com/orgs/elastic/teams/obs-ux-infra_services-team) | - | 188 | 0 | 188 | 28 | @@ -470,7 +468,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 37 | 0 | 29 | 1 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 2 | 0 | 0 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 29 | 0 | 29 | 1 | -| | [@elastic/appex-qa](https://github.com/orgs/elastic/teams/appex-qa) | - | 435 | 3 | 400 | 1 | +| | [@elastic/appex-qa](https://github.com/orgs/elastic/teams/appex-qa) | - | 550 | 6 | 510 | 2 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 1 | 0 | 0 | 0 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 1 | 0 | 1 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 10 | 0 | 10 | 1 | @@ -674,7 +672,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 7 | 0 | 6 | 0 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | Contains functionality for the unified data table which can be integrated into apps | 109 | 0 | 49 | 1 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 14 | 0 | 13 | 6 | -| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | Contains functionality for the field list and field stats which can be integrated into apps | 285 | 0 | 261 | 9 | +| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | Contains functionality for the field list and field stats which can be integrated into apps | 291 | 0 | 267 | 9 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 13 | 0 | 9 | 0 | | | [@elastic/security-threat-hunting-investigations](https://github.com/orgs/elastic/teams/security-threat-hunting-investigations) | - | 3 | 0 | 0 | 0 | | | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | - | 3 | 0 | 2 | 1 | diff --git a/api_docs/presentation_util.mdx b/api_docs/presentation_util.mdx index 03fbf95d3040e..28d0df2e011ee 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-09 +date: 2024-01-10 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 57aad21a16280..88b16d7cf863d 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-09 +date: 2024-01-10 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 f545e687d36b4..4bc9009a13ce5 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-09 +date: 2024-01-10 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 86f1076898042..b72ff12aed925 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-09 +date: 2024-01-10 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 307fc70c02e9e..820427fe4b33a 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-09 +date: 2024-01-10 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 6645ba7fa38f7..0683ba677ced2 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-09 +date: 2024-01-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'rollup'] --- import rollupObj from './rollup.devdocs.json'; diff --git a/api_docs/rule_registry.devdocs.json b/api_docs/rule_registry.devdocs.json index a24e8ed5ea6d7..bcb7420c25c3c 100644 --- a/api_docs/rule_registry.devdocs.json +++ b/api_docs/rule_registry.devdocs.json @@ -2315,7 +2315,7 @@ "\nID of the Kibana feature associated with the index.\nUsed by alerts-as-data RBAC.\n\nNote from @dhurley14\nThe purpose of the `feature` param is to force the user to update\nthe data structure which contains the mapping of consumers to alerts\nas data indices. The idea is it is typed such that it forces the\nuser to go to the code and modify it. At least until a better system\nis put in place or we move the alerts as data client out of rule registry.\n" ], "signature": [ - "\"ml\" | \"uptime\" | \"siem\" | \"observability\" | \"stackAlerts\" | \"apm\" | \"logs\" | \"infrastructure\" | \"slo\"" + "\"ml\" | \"uptime\" | \"siem\" | \"observability\" | \"stackAlerts\" | \"apm\" | \"logs\" | \"infrastructure\" | \"slo\" | \"AlertingExample\"" ], "path": "x-pack/plugins/rule_registry/server/rule_data_plugin_service/index_options.ts", "deprecated": false, diff --git a/api_docs/rule_registry.mdx b/api_docs/rule_registry.mdx index 86b6eb433ef65..3abf12e72757d 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-09 +date: 2024-01-10 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 dc3bc219c4261..adc0d27a25fb0 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-09 +date: 2024-01-10 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 668d083c40f66..950b032e9b6c7 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-09 +date: 2024-01-10 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 ab9dea3522179..ff78e8c0623bb 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-09 +date: 2024-01-10 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 0b102dcab6ff1..a6d4d76f1ccf1 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-09 +date: 2024-01-10 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 512db0b5211fe..4d04ec1cec6d6 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-09 +date: 2024-01-10 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 7fa167c68436a..06435c14dc5c2 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-09 +date: 2024-01-10 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 4d3d8048c5d7e..6bce71fe93cea 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-09 +date: 2024-01-10 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 964f45a068663..162f82c1273d2 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-09 +date: 2024-01-10 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 dd19ff7166a26..9f73efdea42f6 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-09 +date: 2024-01-10 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 4c93a1e86d612..fc991c0f7f25b 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-09 +date: 2024-01-10 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 74f9dcfb94a01..ac064ee89c375 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-09 +date: 2024-01-10 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 82dce70dbb05c..8b1e6c5bd760a 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-09 +date: 2024-01-10 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 18a09fa046f7b..1ea4519d2e007 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-09 +date: 2024-01-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'securitySolutionServerless'] --- import securitySolutionServerlessObj from './security_solution_serverless.devdocs.json'; diff --git a/api_docs/serverless.mdx b/api_docs/serverless.mdx index 027e558947c84..67f135f05371e 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-09 +date: 2024-01-10 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 bb047e6f4af24..07561265bc235 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-09 +date: 2024-01-10 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 a8896a0b77a82..0395c9bdbd4b0 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-09 +date: 2024-01-10 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 fd5160703aa1d..b6618b271557f 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-09 +date: 2024-01-10 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 fdc34a7ec6e7b..4cb0561c8b361 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-09 +date: 2024-01-10 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 12835e13429ad..eee1a41bf682b 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-09 +date: 2024-01-10 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 0919c075d9eb1..a14ac9402e2aa 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-09 +date: 2024-01-10 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 ba8ba840fa0e8..8670c9facf457 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-09 +date: 2024-01-10 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 2a9be13f0aacb..feef6d634d157 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-09 +date: 2024-01-10 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 f81a447c74a1f..3b2594cb18079 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-09 +date: 2024-01-10 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 2846800129688..98b8a1ff0fd56 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-09 +date: 2024-01-10 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 f1fb2fdd29996..ea3da69d2f659 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-09 +date: 2024-01-10 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 6bbb64817c0a9..5eacc0d503c18 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-09 +date: 2024-01-10 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 14b5a56a1e655..cfd4b1a232974 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-09 +date: 2024-01-10 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 8dff001b9cd0c..60c0f78ac98dc 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-09 +date: 2024-01-10 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 b59a9379d4f2d..4f106fea63335 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-09 +date: 2024-01-10 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 a007d073ac32a..877a961a3e996 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-09 +date: 2024-01-10 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 626ebbbae9cb7..b47819ed14af4 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-09 +date: 2024-01-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'transform'] --- import transformObj from './transform.devdocs.json'; diff --git a/api_docs/triggers_actions_ui.mdx b/api_docs/triggers_actions_ui.mdx index dedaffeee02b0..7bb671c903bc1 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-09 +date: 2024-01-10 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 7d6d273123fe6..68ccce4a1f2ef 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-09 +date: 2024-01-10 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 d8ac2079fbbee..852b877e10208 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-09 +date: 2024-01-10 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 49d0524ea4a34..bb6338a8dcad4 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-09 +date: 2024-01-10 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 16f777478a428..eeb039b6c3440 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-09 +date: 2024-01-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedHistogram'] --- import unifiedHistogramObj from './unified_histogram.devdocs.json'; diff --git a/api_docs/unified_search.mdx b/api_docs/unified_search.mdx index a2a3f486a907e..5eeb9799c4393 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-09 +date: 2024-01-10 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 c8abd0c4dbef8..fbe3f83c287e1 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-09 +date: 2024-01-10 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 3ea3a0a565ff4..851c9fa6581b8 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-09 +date: 2024-01-10 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 abc3d075e5459..919dc5fc0f38c 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-09 +date: 2024-01-10 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 6a97522d99910..abc84b2ee64cc 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-09 +date: 2024-01-10 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 5ef5f406b4833..81d987b9dcea2 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-09 +date: 2024-01-10 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 11cb609406a8c..dd7dd1a5cb7c6 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-09 +date: 2024-01-10 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 6b1de26b8bdcd..dc3139aebd786 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-09 +date: 2024-01-10 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 b10c94821f2cf..b32faf08eff5d 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-09 +date: 2024-01-10 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 e88c65181c8bf..f30ce4ece3968 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-09 +date: 2024-01-10 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 4d6eba14c2138..4adde8f669a77 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-09 +date: 2024-01-10 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 4f5c1a5310dc2..8637f8c076c65 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-09 +date: 2024-01-10 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 05f1518d16734..1ccd35715fabd 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-09 +date: 2024-01-10 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 7ff12fd5f53fd..7dc10304b56e7 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-09 +date: 2024-01-10 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 f13587370f487..525b72f7b62d3 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-09 +date: 2024-01-10 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 7991459cd3066..fea30521d2b57 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-09 +date: 2024-01-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeXy'] --- import visTypeXyObj from './vis_type_xy.devdocs.json'; diff --git a/api_docs/visualizations.mdx b/api_docs/visualizations.mdx index 400233addc007..5e59c5c9097d0 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-09 +date: 2024-01-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visualizations'] --- import visualizationsObj from './visualizations.devdocs.json'; From c07fb268886c530876dafc24d845676d0837f202 Mon Sep 17 00:00:00 2001 From: Ido Cohen <90558359+CohenIdo@users.noreply.github.com> Date: Wed, 10 Jan 2024 09:38:23 +0200 Subject: [PATCH 18/20] [Cloud Security] adopt dashboard and benchmark page for mute rules --- .../common/types/rules/v4.ts | 5 +- .../bulk_action/bulk_action.ts | 10 +- .../benchmark_rules/bulk_action/utils.ts | 16 +- .../routes/benchmark_rules/bulk_action/v1.ts | 9 +- .../routes/benchmark_rules/get_states/v1.ts | 4 +- .../server/routes/benchmarks/benchmarks.ts | 1 + .../server/routes/benchmarks/v2.ts | 13 +- .../compliance_dashboard.ts | 4 + .../server/tasks/findings_stats_task.ts | 4 +- .../test/cloud_security_posture_api/config.ts | 1 + .../routes/benchmarks.ts | 264 ++++++++++++++++++ .../routes/csp_benchmark_rules_bulk_update.ts | 54 ++++ .../routes/mocks/benchmark_score_mock.ts | 4 +- .../routes/stats.ts | 76 ++++- 14 files changed, 432 insertions(+), 33 deletions(-) create mode 100644 x-pack/test/cloud_security_posture_api/routes/benchmarks.ts diff --git a/x-pack/plugins/cloud_security_posture/common/types/rules/v4.ts b/x-pack/plugins/cloud_security_posture/common/types/rules/v4.ts index 994e09d9b9c2c..19711c7e7eb13 100644 --- a/x-pack/plugins/cloud_security_posture/common/types/rules/v4.ts +++ b/x-pack/plugins/cloud_security_posture/common/types/rules/v4.ts @@ -6,7 +6,6 @@ */ import { schema, TypeOf } from '@kbn/config-schema'; -import { SavedObjectsUpdateResponse } from '@kbn/core-saved-objects-api-server'; import { BenchmarksCisId } from '../latest'; export type { cspBenchmarkRuleMetadataSchema, @@ -159,6 +158,6 @@ export const cspSettingsSchema = schema.object({ export type CspSettings = TypeOf; export interface BulkActionBenchmarkRulesResponse { - newCspSettings: SavedObjectsUpdateResponse; - disabledRules: string[]; + updatedBenchmarkRulesStates: CspBenchmarkRulesStates; + disabledDetectionRules: string[]; } diff --git a/x-pack/plugins/cloud_security_posture/server/routes/benchmark_rules/bulk_action/bulk_action.ts b/x-pack/plugins/cloud_security_posture/server/routes/benchmark_rules/bulk_action/bulk_action.ts index b31bc731e0523..a89c37d439716 100644 --- a/x-pack/plugins/cloud_security_posture/server/routes/benchmark_rules/bulk_action/bulk_action.ts +++ b/x-pack/plugins/cloud_security_posture/server/routes/benchmark_rules/bulk_action/bulk_action.ts @@ -8,7 +8,6 @@ import { transformError } from '@kbn/securitysolution-es-utils'; import { CspBenchmarkRulesBulkActionRequestSchema, - CspBenchmarkRulesStates, cspBenchmarkRulesBulkActionRequestSchema, CspBenchmarkRulesBulkActionResponse, } from '../../../../common/types/rules/v4'; @@ -77,16 +76,13 @@ export const defineBulkActionCspBenchmarkRulesRoute = (router: CspRouter) => cspContext.logger ); - const updatedBenchmarkRules: CspBenchmarkRulesStates = - handlerResponse.newCspSettings.attributes.rules!; - const body: CspBenchmarkRulesBulkActionResponse = { - updated_benchmark_rules: updatedBenchmarkRules, + updated_benchmark_rules: handlerResponse.updatedBenchmarkRulesStates, message: 'The bulk operation has been executed successfully.', }; - if (requestBody.action === 'mute' && handlerResponse.disabledRules) { - body.disabled_detection_rules = handlerResponse.disabledRules; + if (requestBody.action === 'mute' && handlerResponse.disabledDetectionRules) { + body.disabled_detection_rules = handlerResponse.disabledDetectionRules; } return response.ok({ body }); diff --git a/x-pack/plugins/cloud_security_posture/server/routes/benchmark_rules/bulk_action/utils.ts b/x-pack/plugins/cloud_security_posture/server/routes/benchmark_rules/bulk_action/utils.ts index 5365d476a0e8d..646fe1814f9a7 100644 --- a/x-pack/plugins/cloud_security_posture/server/routes/benchmark_rules/bulk_action/utils.ts +++ b/x-pack/plugins/cloud_security_posture/server/routes/benchmark_rules/bulk_action/utils.ts @@ -5,10 +5,7 @@ * 2.0. */ -import type { - SavedObjectsClientContract, - SavedObjectsUpdateResponse, -} from '@kbn/core-saved-objects-api-server'; +import type { SavedObjectsClientContract } from '@kbn/core-saved-objects-api-server'; import type { FindResult, RulesClient } from '@kbn/alerting-plugin/server'; import type { RuleParams } from '@kbn/alerting-plugin/server/application/rule/types'; import type { @@ -105,17 +102,22 @@ export const muteDetectionRules = async ( return disabledDetectionRules; }; -export const updateRulesStates = async ( +export const updateBenchmarkRulesStates = async ( encryptedSoClient: SavedObjectsClientContract, newRulesStates: CspBenchmarkRulesStates -): Promise> => { - return await encryptedSoClient.update( +): Promise => { + if (!Object.keys(newRulesStates).length) { + return {}; + } + + const response = await encryptedSoClient.update( INTERNAL_CSP_SETTINGS_SAVED_OBJECT_TYPE, INTERNAL_CSP_SETTINGS_SAVED_OBJECT_ID, { rules: newRulesStates }, // if there is no saved object yet, insert a new SO { upsert: { rules: newRulesStates } } ); + return response.attributes.rules || {}; }; export const setRulesStates = ( diff --git a/x-pack/plugins/cloud_security_posture/server/routes/benchmark_rules/bulk_action/v1.ts b/x-pack/plugins/cloud_security_posture/server/routes/benchmark_rules/bulk_action/v1.ts index a2f5c5c98b72d..8cdc014f52267 100644 --- a/x-pack/plugins/cloud_security_posture/server/routes/benchmark_rules/bulk_action/v1.ts +++ b/x-pack/plugins/cloud_security_posture/server/routes/benchmark_rules/bulk_action/v1.ts @@ -12,7 +12,7 @@ import { getBenchmarkRules, muteDetectionRules, setRulesStates, - updateRulesStates, + updateBenchmarkRulesStates, } from './utils'; import type { BulkActionBenchmarkRulesResponse, @@ -43,9 +43,12 @@ export const bulkActionBenchmarkRulesHandler = async ( ); const newRulesStates = setRulesStates(rulesKeys, muteStatesMap[action], rulesToUpdate); - const newCspSettings = await updateRulesStates(encryptedSoClient, newRulesStates); + const updatedBenchmarkRulesStates = await updateBenchmarkRulesStates( + encryptedSoClient, + newRulesStates + ); const disabledDetectionRules = action === 'mute' ? await muteDetectionRules(soClient, detectionRulesClient, rulesIds) : []; - return { newCspSettings, disabledRules: disabledDetectionRules }; + return { updatedBenchmarkRulesStates, disabledDetectionRules }; }; diff --git a/x-pack/plugins/cloud_security_posture/server/routes/benchmark_rules/get_states/v1.ts b/x-pack/plugins/cloud_security_posture/server/routes/benchmark_rules/get_states/v1.ts index bf849be225bc1..0682c48a70b1f 100644 --- a/x-pack/plugins/cloud_security_posture/server/routes/benchmark_rules/get_states/v1.ts +++ b/x-pack/plugins/cloud_security_posture/server/routes/benchmark_rules/get_states/v1.ts @@ -48,8 +48,8 @@ export const getCspBenchmarkRulesStatesHandler = async ( } }; -export const buildMutedRulesFilter = async ( - encryptedSoClient: ISavedObjectsRepository +export const getMutedRulesFilterQuery = async ( + encryptedSoClient: ISavedObjectsRepository | SavedObjectsClientContract ): Promise => { const rulesStates = await getCspBenchmarkRulesStatesHandler(encryptedSoClient); const mutedRules = Object.fromEntries( diff --git a/x-pack/plugins/cloud_security_posture/server/routes/benchmarks/benchmarks.ts b/x-pack/plugins/cloud_security_posture/server/routes/benchmarks/benchmarks.ts index 8ba6d0449be6a..e7ae84b0ceb87 100644 --- a/x-pack/plugins/cloud_security_posture/server/routes/benchmarks/benchmarks.ts +++ b/x-pack/plugins/cloud_security_posture/server/routes/benchmarks/benchmarks.ts @@ -81,6 +81,7 @@ export const defineGetBenchmarksRoute = (router: CspRouter) => const cspBenchmarks = await getBenchmarksV2( esClient, cspContext.soClient, + cspContext.encryptedSavedObjects, cspContext.logger ); return response.ok({ diff --git a/x-pack/plugins/cloud_security_posture/server/routes/benchmarks/v2.ts b/x-pack/plugins/cloud_security_posture/server/routes/benchmarks/v2.ts index 5e0a4c5014365..55e32fdb45a8f 100644 --- a/x-pack/plugins/cloud_security_posture/server/routes/benchmarks/v2.ts +++ b/x-pack/plugins/cloud_security_posture/server/routes/benchmarks/v2.ts @@ -7,7 +7,7 @@ import { QueryDslQueryContainer } from '@kbn/data-views-plugin/common/types'; import { MappingRuntimeFields } from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; -import type { Logger } from '@kbn/core/server'; +import type { ElasticsearchClient, Logger } from '@kbn/core/server'; import { SavedObjectsClientContract } from '@kbn/core-saved-objects-api-server'; import { CSP_BENCHMARK_RULE_SAVED_OBJECT_TYPE, @@ -18,10 +18,12 @@ import { CspBenchmarkRule, Benchmark } from '../../../common/types/latest'; import { getClusters } from '../compliance_dashboard/get_clusters'; import { getStats } from '../compliance_dashboard/get_stats'; import { getSafePostureTypeRuntimeMapping } from '../../../common/runtime_mappings/get_safe_posture_type_runtime_mapping'; +import { getMutedRulesFilterQuery } from '../benchmark_rules/get_states/v1'; export const getBenchmarksData = async ( soClient: SavedObjectsClientContract, - esClient: any, + encryptedSoClient: SavedObjectsClientContract, + esClient: ElasticsearchClient, logger: Logger ): Promise => { // Returns a list of benchmark based on their Version and Benchmark ID @@ -53,6 +55,7 @@ export const getBenchmarksData = async ( }); const benchmarkAgg: any = benchmarksResponse.aggregations; + const rulesFilter = await getMutedRulesFilterQuery(encryptedSoClient); const { id: pitId } = await esClient.openPointInTime({ index: LATEST_FINDINGS_INDEX_DEFAULT_NS, @@ -78,6 +81,7 @@ export const getBenchmarksData = async ( { term: { 'rule.benchmark.version': benchmarkVersion } }, { term: { safe_posture_type: postureType } }, ], + must_not: rulesFilter, }, }; const benchmarkScore = await getStats(esClient, query, pitId, runtimeMappings, logger); @@ -106,11 +110,12 @@ export const getBenchmarksData = async ( }; export const getBenchmarks = async ( - esClient: any, + esClient: ElasticsearchClient, soClient: SavedObjectsClientContract, + encryptedSoClient: SavedObjectsClientContract, logger: Logger ) => { - const benchmarks = await getBenchmarksData(soClient, esClient, logger); + const benchmarks = await getBenchmarksData(soClient, encryptedSoClient, esClient, logger); const getBenchmarkResponse = { items: benchmarks, }; diff --git a/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/compliance_dashboard.ts b/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/compliance_dashboard.ts index 614f85dcf9374..4c9294248e1e7 100644 --- a/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/compliance_dashboard.ts +++ b/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/compliance_dashboard.ts @@ -24,6 +24,7 @@ import { CspRouter } from '../../types'; import { getTrends, Trends } from './get_trends'; import { BenchmarkWithoutTrend, getBenchmarks } from './get_benchmarks'; import { toBenchmarkDocFieldKey } from '../../lib/mapping_field_util'; +import { getMutedRulesFilterQuery } from '../benchmark_rules/get_states/v1'; export interface KeyDocCount { key: TKey; @@ -152,6 +153,8 @@ export const defineGetComplianceDashboardRoute = (router: CspRouter) => try { const esClient = cspContext.esClient.asCurrentUser; + const encryptedSoClient = cspContext.encryptedSavedObjects; + const filteredRules = await getMutedRulesFilterQuery(encryptedSoClient); const { id: pitId } = await esClient.openPointInTime({ index: LATEST_FINDINGS_INDEX_DEFAULT_NS, @@ -167,6 +170,7 @@ export const defineGetComplianceDashboardRoute = (router: CspRouter) => const query: QueryDslQueryContainer = { bool: { filter: [{ term: { safe_posture_type: policyTemplate } }], + must_not: filteredRules, }, }; diff --git a/x-pack/plugins/cloud_security_posture/server/tasks/findings_stats_task.ts b/x-pack/plugins/cloud_security_posture/server/tasks/findings_stats_task.ts index a0727ae4344a7..df9c1c73224c2 100644 --- a/x-pack/plugins/cloud_security_posture/server/tasks/findings_stats_task.ts +++ b/x-pack/plugins/cloud_security_posture/server/tasks/findings_stats_task.ts @@ -15,7 +15,7 @@ import { SearchRequest } from '@kbn/data-plugin/common'; import { ElasticsearchClient } from '@kbn/core/server'; import { QueryDslQueryContainer } from '@kbn/data-views-plugin/common/types'; import type { ISavedObjectsRepository, Logger } from '@kbn/core/server'; -import { buildMutedRulesFilter } from '../routes/benchmark_rules/get_states/v1'; +import { getMutedRulesFilterQuery } from '../routes/benchmark_rules/get_states/v1'; import { getSafePostureTypeRuntimeMapping } from '../../common/runtime_mappings/get_safe_posture_type_runtime_mapping'; import { getIdentifierRuntimeMapping } from '../../common/runtime_mappings/get_identifier_runtime_mapping'; import { FindingsStatsTaskResult, ScoreByPolicyTemplateBucket, VulnSeverityAggs } from './types'; @@ -382,7 +382,7 @@ export const aggregateLatestFindings = async ( try { const startAggTime = performance.now(); - const rulesFilter = await buildMutedRulesFilter(encryptedSoClient); + const rulesFilter = await getMutedRulesFilterQuery(encryptedSoClient); const customScoreIndexQueryResult = await esClient.search( getScoreQuery(rulesFilter) diff --git a/x-pack/test/cloud_security_posture_api/config.ts b/x-pack/test/cloud_security_posture_api/config.ts index a1a0714a2d5a6..bbee66741210e 100644 --- a/x-pack/test/cloud_security_posture_api/config.ts +++ b/x-pack/test/cloud_security_posture_api/config.ts @@ -20,6 +20,7 @@ export default async function ({ readConfigFile }: FtrConfigProviderContext) { require.resolve('./routes/stats.ts'), require.resolve('./routes/csp_benchmark_rules_bulk_update.ts'), require.resolve('./routes/csp_benchmark_rules_get_states.ts'), + require.resolve('./routes/benchmarks.ts'), ], junit: { reportName: 'X-Pack Cloud Security Posture API Tests', diff --git a/x-pack/test/cloud_security_posture_api/routes/benchmarks.ts b/x-pack/test/cloud_security_posture_api/routes/benchmarks.ts new file mode 100644 index 0000000000000..8f52358c33144 --- /dev/null +++ b/x-pack/test/cloud_security_posture_api/routes/benchmarks.ts @@ -0,0 +1,264 @@ +/* + * Copyright 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 { + ELASTIC_HTTP_VERSION_HEADER, + X_ELASTIC_INTERNAL_ORIGIN_REQUEST, +} from '@kbn/core-http-common'; +import { + BENCHMARK_SCORE_INDEX_DEFAULT_NS, + CSP_BENCHMARK_RULE_SAVED_OBJECT_TYPE, + LATEST_FINDINGS_INDEX_DEFAULT_NS, +} from '@kbn/cloud-security-posture-plugin/common/constants'; +import expect from '@kbn/expect'; +import Chance from 'chance'; +import { CspBenchmarkRule } from '@kbn/cloud-security-posture-plugin/common/types/latest'; +import { FtrProviderContext } from '../ftr_provider_context'; + +const chance = new Chance(); + +// eslint-disable-next-line import/no-default-export +export default function (providerContext: FtrProviderContext) { + const { getService } = providerContext; + + const retry = getService('retry'); + const es = getService('es'); + const kibanaServer = getService('kibanaServer'); + const supertest = getService('supertest'); + const log = getService('log'); + + const getCspBenchmarkRules = async (benchmarkId: string): Promise => { + const cspBenchmarkRules = await kibanaServer.savedObjects.find({ + type: CSP_BENCHMARK_RULE_SAVED_OBJECT_TYPE, + }); + const requestedBenchmarkRules = cspBenchmarkRules.saved_objects.filter( + (cspBenchmarkRule) => cspBenchmarkRule.attributes.metadata.benchmark.id === benchmarkId + ); + expect(requestedBenchmarkRules.length).greaterThan(0); + + return requestedBenchmarkRules.map((item) => item.attributes); + }; + + const getMockFinding = (rule: CspBenchmarkRule, evaluation: string) => ({ + '@timestamp': '2023-06-29T02:08:44.993Z', + resource: { + id: chance.guid(), + name: `kubelet`, + sub_type: 'lower case sub type', + type: 'k8s_resource_type', + }, + cloud: { + account: { id: 'Another Upper case account id' }, + }, + result: { evaluation }, + rule: { + name: 'Upper case rule name', + id: rule.metadata.id, + section: 'Upper case section', + benchmark: { + id: rule.metadata.benchmark.id, + posture_type: rule.metadata.benchmark.posture_type, + name: rule.metadata.benchmark.name, + version: rule.metadata.benchmark.version, + rule_number: rule.metadata.benchmark.rule_number, + }, + }, + orchestrator: { + cluster: { id: 'Upper case cluster id' }, + }, + }); + + /** + * required before indexing findings + */ + const waitForPluginInitialized = (): Promise => + retry.try(async () => { + log.debug('Check CSP plugin is initialized'); + const response = await supertest + .get('/internal/cloud_security_posture/status?check=init') + .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .expect(200); + expect(response.body).to.eql({ isPluginInitialized: true }); + log.debug('CSP plugin is initialized'); + }); + + const index = { + addFindings: async (findingsMock: T[]) => { + await Promise.all( + findingsMock.map((findingsDoc) => + es.index({ + index: LATEST_FINDINGS_INDEX_DEFAULT_NS, + body: { ...findingsDoc, '@timestamp': new Date().toISOString() }, + refresh: true, + }) + ) + ); + }, + + addScores: async (scoresMock: T[]) => { + await Promise.all( + scoresMock.map((scoreDoc) => + es.index({ + index: BENCHMARK_SCORE_INDEX_DEFAULT_NS, + body: { ...scoreDoc, '@timestamp': new Date().toISOString() }, + refresh: true, + }) + ) + ); + }, + + removeFindings: async () => { + const indexExists = await es.indices.exists({ index: LATEST_FINDINGS_INDEX_DEFAULT_NS }); + + if (indexExists) { + es.deleteByQuery({ + index: LATEST_FINDINGS_INDEX_DEFAULT_NS, + query: { match_all: {} }, + refresh: true, + }); + } + }, + + removeScores: async () => { + const indexExists = await es.indices.exists({ index: BENCHMARK_SCORE_INDEX_DEFAULT_NS }); + + if (indexExists) { + es.deleteByQuery({ + index: BENCHMARK_SCORE_INDEX_DEFAULT_NS, + query: { match_all: {} }, + refresh: true, + }); + } + }, + + deleteFindingsIndex: async () => { + const indexExists = await es.indices.exists({ index: LATEST_FINDINGS_INDEX_DEFAULT_NS }); + + if (indexExists) { + await es.indices.delete({ index: LATEST_FINDINGS_INDEX_DEFAULT_NS }); + } + }, + }; + + describe('GET /internal/cloud_security_posture/benchmarks', () => { + describe('Get Benchmark API', async () => { + beforeEach(async () => { + await index.removeFindings(); + await kibanaServer.savedObjects.clean({ + types: ['cloud-security-posture-settings'], + }); + await waitForPluginInitialized(); + }); + + it('Verify cspm benchmark score is updated when muting rules', async () => { + const benchmark = 'cis_aws'; + const benchmarkRules = await getCspBenchmarkRules(benchmark); + + const cspmFinding1 = getMockFinding(benchmarkRules[0], 'passed'); + const cspmFinding2 = getMockFinding(benchmarkRules[1], 'failed'); + + await index.addFindings([cspmFinding1, cspmFinding2]); + + const { body: benchmarksBeforeMute } = await supertest + .get('/internal/cloud_security_posture/benchmarks') + .set(ELASTIC_HTTP_VERSION_HEADER, '2') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') + .set('kbn-xsrf', 'xxxx') + .expect(200); + + const scoreBeforeMute = benchmarksBeforeMute.items.find( + (item: { id: string }) => item.id === benchmark + ); + + expect(scoreBeforeMute.score.postureScore).to.equal(50); + + await supertest + .post(`/internal/cloud_security_posture/rules/_bulk_action`) + .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') + .set('kbn-xsrf', 'xxxx') + .send({ + action: 'mute', + rules: [ + { + benchmark_id: cspmFinding2.rule.benchmark.id, + benchmark_version: cspmFinding2.rule.benchmark.version, + rule_number: cspmFinding2.rule.benchmark.rule_number || '', + rule_id: cspmFinding2.rule.id, + }, + ], + }) + .expect(200); + + const { body: benchmarksAfterMute } = await supertest + .get('/internal/cloud_security_posture/benchmarks') + .set(ELASTIC_HTTP_VERSION_HEADER, '2') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') + .set('kbn-xsrf', 'xxxx') + .expect(200); + + const scoreAfterMute = benchmarksAfterMute.items.find( + (item: { id: string }) => item.id === benchmark + ); + + expect(scoreAfterMute.score.postureScore).to.equal(100); + }); + + it('Verify kspm benchmark score is updated when muting rules', async () => { + const benchmark = 'cis_k8s'; + const benchmarkRules = await getCspBenchmarkRules(benchmark); + + const kspmFinding1 = getMockFinding(benchmarkRules[0], 'passed'); + const kspmFinding2 = getMockFinding(benchmarkRules[1], 'failed'); + + await index.addFindings([kspmFinding1, kspmFinding2]); + const { body: benchmarksBeforeMute } = await supertest + .get('/internal/cloud_security_posture/benchmarks') + .set(ELASTIC_HTTP_VERSION_HEADER, '2') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') + .set('kbn-xsrf', 'xxxx') + .expect(200); + + const scoreBeforeMute = benchmarksBeforeMute.items.find( + (item: { id: string }) => item.id === benchmark + ); + + expect(scoreBeforeMute.score.postureScore).to.equal(50); + + await supertest + .post(`/internal/cloud_security_posture/rules/_bulk_action`) + .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') + .set('kbn-xsrf', 'xxxx') + .send({ + action: 'mute', + rules: [ + { + benchmark_id: kspmFinding2.rule.benchmark.id, + benchmark_version: kspmFinding2.rule.benchmark.version, + rule_number: kspmFinding2.rule.benchmark.rule_number || '', + rule_id: kspmFinding2.rule.id, + }, + ], + }) + .expect(200); + + const { body: benchmarksAfterMute } = await supertest + .get('/internal/cloud_security_posture/benchmarks') + .set(ELASTIC_HTTP_VERSION_HEADER, '2') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') + .set('kbn-xsrf', 'xxxx') + .expect(200); + + const scoreAfterMute = benchmarksAfterMute.items.find( + (item: { id: string }) => item.id === benchmark + ); + + expect(scoreAfterMute.score.postureScore).to.equal(100); + }); + }); + }); +} diff --git a/x-pack/test/cloud_security_posture_api/routes/csp_benchmark_rules_bulk_update.ts b/x-pack/test/cloud_security_posture_api/routes/csp_benchmark_rules_bulk_update.ts index 2c7d0ce250b02..de77b33a66df7 100644 --- a/x-pack/test/cloud_security_posture_api/routes/csp_benchmark_rules_bulk_update.ts +++ b/x-pack/test/cloud_security_posture_api/routes/csp_benchmark_rules_bulk_update.ts @@ -371,6 +371,60 @@ export default function ({ getService }: FtrProviderContext) { expectExpect(body.disabled_detection_rules).toEqual([detectionRule.body.id]); }); + it('Expect to save rules states when requesting to update empty object', async () => { + const rule1 = await getRandomCspBenchmarkRule(); + + await supertest + .post(`/internal/cloud_security_posture/rules/_bulk_action`) + .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') + .set('kbn-xsrf', 'xxxx') + .send({ + action: 'mute', + rules: [ + { + benchmark_id: rule1.metadata.benchmark.id, + benchmark_version: rule1.metadata.benchmark.version, + rule_number: rule1.metadata.benchmark.rule_number || '', + rule_id: rule1.metadata.id, + }, + ], + }) + .expect(200); + + await supertest + .post(`/internal/cloud_security_posture/rules/_bulk_action`) + .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') + .set('kbn-xsrf', 'xxxx') + .send({ + action: 'unmute', + rules: [], + }) + .expect(200); + + const { body } = await supertest + .get(`/internal/cloud_security_posture/rules/_get_states`) + .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') + .set('kbn-xsrf', 'xxxx') + .expect(200); + + expectExpect(body).toEqual( + expectExpect.objectContaining({ + [generateRuleKey(rule1)]: { + muted: true, + benchmark_id: rule1.metadata.benchmark.id, + benchmark_version: rule1.metadata.benchmark.version, + rule_number: rule1.metadata.benchmark.rule_number + ? rule1.metadata.benchmark.rule_number + : '', + rule_id: rule1.metadata.id, + }, + }) + ); + }); + it('set wrong action input', async () => { const rule1 = await getRandomCspBenchmarkRule(); diff --git a/x-pack/test/cloud_security_posture_api/routes/mocks/benchmark_score_mock.ts b/x-pack/test/cloud_security_posture_api/routes/mocks/benchmark_score_mock.ts index 58453003b5b6e..709cc354ec254 100644 --- a/x-pack/test/cloud_security_posture_api/routes/mocks/benchmark_score_mock.ts +++ b/x-pack/test/cloud_security_posture_api/routes/mocks/benchmark_score_mock.ts @@ -5,11 +5,11 @@ * 2.0. */ -export const getBenchmarkScoreMockData = (postureType: string) => [ +export const getBenchmarkScoreMockData = (postureType: string, isEnabledRulesScore: boolean) => [ { total_findings: 1, policy_template: postureType, - is_enabled_rules_score: true, + is_enabled_rules_score: isEnabledRulesScore, '@timestamp': '2023-11-22T16:10:55.229268215Z', score_by_cluster_id: { 'Another Upper case account id': { diff --git a/x-pack/test/cloud_security_posture_api/routes/stats.ts b/x-pack/test/cloud_security_posture_api/routes/stats.ts index f558a0f6e7137..f290c24a645fc 100644 --- a/x-pack/test/cloud_security_posture_api/routes/stats.ts +++ b/x-pack/test/cloud_security_posture_api/routes/stats.ts @@ -141,7 +141,7 @@ export default function (providerContext: FtrProviderContext) { await index.removeScores(); await waitForPluginInitialized(); - await index.addScores(getBenchmarkScoreMockData('cspm')); + await index.addScores(getBenchmarkScoreMockData('cspm', true)); await index.addFindings([findingsMockData[1]]); }); @@ -186,7 +186,7 @@ export default function (providerContext: FtrProviderContext) { await index.removeScores(); await waitForPluginInitialized(); - await index.addScores(getBenchmarkScoreMockData('kspm')); + await index.addScores(getBenchmarkScoreMockData('kspm', true)); await index.addFindings([findingsMockData[0]]); }); @@ -207,7 +207,77 @@ export default function (providerContext: FtrProviderContext) { }).to.eql(kspmComplianceDashboardDataMockV1); }); - it('should return KSPM benchmarks V2 ', async () => { + it('should return KSPM benchmarks V2', async () => { + const { body: res }: { body: ComplianceDashboardDataV2 } = await kibanaHttpClient + .get(`/internal/cloud_security_posture/stats/kspm`) + .set(ELASTIC_HTTP_VERSION_HEADER, '2') + .set('kbn-xsrf', 'xxxx') + .expect(200); + + const resBenchmarks = removeRealtimeBenchmarkFields(res.benchmarks); + + const trends = removeRealtimeCalculatedFields(res.trend); + + expect({ + ...res, + benchmarks: resBenchmarks, + trend: trends, + }).to.eql(kspmComplianceDashboardDataMockV2); + }); + + it('should return KSPM benchmarks V2', async () => { + const { body: res }: { body: ComplianceDashboardDataV2 } = await kibanaHttpClient + .get(`/internal/cloud_security_posture/stats/kspm`) + .set(ELASTIC_HTTP_VERSION_HEADER, '2') + .set('kbn-xsrf', 'xxxx') + .expect(200); + + const resBenchmarks = removeRealtimeBenchmarkFields(res.benchmarks); + + const trends = removeRealtimeCalculatedFields(res.trend); + + expect({ + ...res, + benchmarks: resBenchmarks, + trend: trends, + }).to.eql(kspmComplianceDashboardDataMockV2); + }); + }); + + describe('Compliance dashboard based on enabled rules', async () => { + beforeEach(async () => { + await index.removeFindings(); + await index.removeScores(); + + await waitForPluginInitialized(); + }); + it('should calculate cspm benchmarks posture score based only on enabled rules', async () => { + await index.addScores(getBenchmarkScoreMockData('cspm', true)); + await index.addScores(getBenchmarkScoreMockData('cspm', false)); + await index.addFindings([findingsMockData[1]]); + + const { body: res }: { body: ComplianceDashboardDataV2 } = await kibanaHttpClient + .get(`/internal/cloud_security_posture/stats/cspm`) + .set(ELASTIC_HTTP_VERSION_HEADER, '2') + .set('kbn-xsrf', 'xxxx') + .expect(200); + + const resBenchmarks = removeRealtimeBenchmarkFields(res.benchmarks); + + const trends = removeRealtimeCalculatedFields(res.trend); + + expect({ + ...res, + benchmarks: resBenchmarks, + trend: trends, + }).to.eql(cspmComplianceDashboardDataMockV2); + }); + + it('should calculate kspm benchmarks posture score based only on enabled rules', async () => { + await index.addScores(getBenchmarkScoreMockData('kspm', true)); + await index.addScores(getBenchmarkScoreMockData('kspm', false)); + await index.addFindings([findingsMockData[0]]); + const { body: res }: { body: ComplianceDashboardDataV2 } = await kibanaHttpClient .get(`/internal/cloud_security_posture/stats/kspm`) .set(ELASTIC_HTTP_VERSION_HEADER, '2') From 39749b772d8cd4e0ad7620ff155e05c8a09df6d5 Mon Sep 17 00:00:00 2001 From: Lisa Cawley Date: Wed, 10 Jan 2024 00:15:10 -0800 Subject: [PATCH 19/20] [Cases] Automate serverless observability screenshots (#174492) --- .../response_ops_docs/cases/list_view.ts | 34 ++++++++++++++++++- .../response_ops_docs/cases/testfile.png | 0 .../response_ops_docs/connectors/index.ts | 6 ++++ 3 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 x-pack/test_serverless/functional/test_suites/observability/screenshot_creation/response_ops_docs/cases/testfile.png diff --git a/x-pack/test_serverless/functional/test_suites/observability/screenshot_creation/response_ops_docs/cases/list_view.ts b/x-pack/test_serverless/functional/test_suites/observability/screenshot_creation/response_ops_docs/cases/list_view.ts index cc1d8b5f78995..4cdb543612035 100644 --- a/x-pack/test_serverless/functional/test_suites/observability/screenshot_creation/response_ops_docs/cases/list_view.ts +++ b/x-pack/test_serverless/functional/test_suites/observability/screenshot_creation/response_ops_docs/cases/list_view.ts @@ -10,11 +10,14 @@ import { FtrProviderContext } from '../../../../../ftr_provider_context'; import { navigateToCasesApp } from '../../../../../../shared/lib/cases'; export default function ({ getPageObject, getPageObjects, getService }: FtrProviderContext) { + const cases = getService('cases'); const pageObjects = getPageObjects(['common', 'header', 'svlCommonPage']); const svlCases = getService('svlCases'); const svlCommonScreenshots = getService('svlCommonScreenshots'); const screenshotDirectories = ['response_ops_docs', 'observability_cases']; + const testSubjects = getService('testSubjects'); const owner = OBSERVABILITY_OWNER; + let caseIdMonitoring: string; describe('list view', function () { before(async () => { @@ -36,7 +39,7 @@ export default function ({ getPageObject, getPageObjects, getService }: FtrProvi }) ); - await svlCases.api.createCase( + const caseMonitoring = await svlCases.api.createCase( svlCases.api.getPostCaseRequest(owner, { title: 'Monitor uptime', tags: ['swimlane'], @@ -44,6 +47,7 @@ export default function ({ getPageObject, getPageObjects, getService }: FtrProvi owner, }) ); + caseIdMonitoring = caseMonitoring.id; }); after(async () => { @@ -59,5 +63,33 @@ export default function ({ getPageObject, getPageObjects, getService }: FtrProvi await navigateToCasesApp(getPageObject, getService, owner); await svlCommonScreenshots.takeScreenshot('cases', screenshotDirectories, 1700, 1024); }); + + it('case settings screenshot', async () => { + await navigateToCasesApp(getPageObject, getService, owner); + await testSubjects.click('configure-case-button'); + await svlCommonScreenshots.takeScreenshot('add-case-connector', screenshotDirectories); + }); + + it('case detail screenshot', async () => { + await pageObjects.common.navigateToUrlWithBrowserHistory( + 'observability', + `/cases/${caseIdMonitoring}`, + undefined + ); + await pageObjects.header.waitUntilLoadingHasFinished(); + await testSubjects.existOrFail('case-view-title'); + const collapseNav = await testSubjects.find('euiCollapsibleNavButton'); + await collapseNav.click(); + const filesTab = await testSubjects.find('case-view-tab-title-files'); + await filesTab.click(); + await cases.casesFilesTable.addFile(require.resolve('./testfile.png')); + await testSubjects.getVisibleText('cases-files-name-link'); + await svlCommonScreenshots.takeScreenshot( + 'cases-files-tab', + screenshotDirectories, + 1024, + 768 + ); + }); }); } diff --git a/x-pack/test_serverless/functional/test_suites/observability/screenshot_creation/response_ops_docs/cases/testfile.png b/x-pack/test_serverless/functional/test_suites/observability/screenshot_creation/response_ops_docs/cases/testfile.png new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/x-pack/test_serverless/functional/test_suites/observability/screenshot_creation/response_ops_docs/connectors/index.ts b/x-pack/test_serverless/functional/test_suites/observability/screenshot_creation/response_ops_docs/connectors/index.ts index 4e2f00e35e94d..2136348a0a86a 100644 --- a/x-pack/test_serverless/functional/test_suites/observability/screenshot_creation/response_ops_docs/connectors/index.ts +++ b/x-pack/test_serverless/functional/test_suites/observability/screenshot_creation/response_ops_docs/connectors/index.ts @@ -8,13 +8,19 @@ import { FtrProviderContext } from '../../../../../ftr_provider_context'; export default function ({ loadTestFile, getService }: FtrProviderContext) { + const actions = getService('actions'); const browser = getService('browser'); + const svlCommonApi = getService('svlCommonApi'); describe('observability connectors', function () { before(async () => { await browser.setWindowSize(1920, 1080); }); + after(async () => { + await actions.api.deleteAllConnectors(svlCommonApi.getInternalRequestHeader()); + }); + loadTestFile(require.resolve('./server_log_connector')); }); } From e3ef0a19de673a39915680cf512aa9cfd80cbe58 Mon Sep 17 00:00:00 2001 From: Christos Nasikas Date: Wed, 10 Jan 2024 10:27:09 +0200 Subject: [PATCH 20/20] [Cases] Fixes registered attachments property actions flaky test (#174508) ## Summary Fixes: https://github.com/elastic/kibana/issues/174384, https://github.com/elastic/kibana/issues/174385, https://github.com/elastic/kibana/issues/174386, https://github.com/elastic/kibana/issues/174387, https://github.com/elastic/kibana/issues/174388 Successfully run 3x100 times: https://buildkite.com/elastic/kibana-pull-request/builds?branch=cnasikas%3Afix_ua_actions_flaky_tests ### Checklist Delete any items that are not applicable to this PR. - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios ### For maintainers - [x] This was checked for breaking API changes and was [labeled appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) --- ...ered_attachments_property_actions.test.tsx | 92 ++++++++++--------- 1 file changed, 47 insertions(+), 45 deletions(-) diff --git a/x-pack/plugins/cases/public/components/user_actions/property_actions/registered_attachments_property_actions.test.tsx b/x-pack/plugins/cases/public/components/user_actions/property_actions/registered_attachments_property_actions.test.tsx index 7f082536e03b7..273ac1db45eaf 100644 --- a/x-pack/plugins/cases/public/components/user_actions/property_actions/registered_attachments_property_actions.test.tsx +++ b/x-pack/plugins/cases/public/components/user_actions/property_actions/registered_attachments_property_actions.test.tsx @@ -7,7 +7,7 @@ import React from 'react'; import { waitForEuiPopoverOpen } from '@elastic/eui/lib/test/rtl'; -import { waitFor } from '@testing-library/react'; +import { waitFor, screen } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import type { AppMockRenderer } from '../../../common/mock'; import { @@ -18,12 +18,7 @@ import { import { RegisteredAttachmentsPropertyActions } from './registered_attachments_property_actions'; import { AttachmentActionType } from '../../../client/attachment_framework/types'; -// FLAKY: https://github.com/elastic/kibana/issues/174384 -// FLAKY: https://github.com/elastic/kibana/issues/174385 -// FLAKY: https://github.com/elastic/kibana/issues/174386 -// FLAKY: https://github.com/elastic/kibana/issues/174387 -// FLAKY: https://github.com/elastic/kibana/issues/174388 -describe.skip('RegisteredAttachmentsPropertyActions', () => { +describe('RegisteredAttachmentsPropertyActions', () => { let appMock: AppMockRenderer; const props = { @@ -34,82 +29,86 @@ describe.skip('RegisteredAttachmentsPropertyActions', () => { }; beforeEach(() => { - appMock = createAppMockRenderer(); jest.clearAllMocks(); + appMock = createAppMockRenderer(); }); it('renders the correct number of actions', async () => { - const result = appMock.render(); + appMock.render(); - expect(result.getByTestId('property-actions-user-action')).toBeInTheDocument(); + expect(await screen.findByTestId('property-actions-user-action')).toBeInTheDocument(); + + userEvent.click(await screen.findByTestId('property-actions-user-action-ellipses')); - userEvent.click(result.getByTestId('property-actions-user-action-ellipses')); await waitForEuiPopoverOpen(); - expect(result.getByTestId('property-actions-user-action-group').children.length).toBe(1); - expect(result.queryByTestId('property-actions-user-action-trash')).toBeInTheDocument(); + expect((await screen.findByTestId('property-actions-user-action-group')).children.length).toBe( + 1 + ); + + expect(screen.queryByTestId('property-actions-user-action-trash')).toBeInTheDocument(); }); it('renders the modal info correctly', async () => { - const result = appMock.render(); + appMock.render(); - expect(result.getByTestId('property-actions-user-action')).toBeInTheDocument(); + expect(await screen.findByTestId('property-actions-user-action')).toBeInTheDocument(); - userEvent.click(result.getByTestId('property-actions-user-action-ellipses')); + userEvent.click(await screen.findByTestId('property-actions-user-action-ellipses')); await waitForEuiPopoverOpen(); - expect(result.queryByTestId('property-actions-user-action-trash')).toBeInTheDocument(); + expect(await screen.findByTestId('property-actions-user-action-trash')).toBeInTheDocument(); - userEvent.click(result.getByTestId('property-actions-user-action-trash')); + userEvent.click(await screen.findByTestId('property-actions-user-action-trash')); - await waitFor(() => { - expect(result.queryByTestId('property-actions-confirm-modal')).toBeInTheDocument(); - }); + expect(await screen.findByTestId('property-actions-confirm-modal')).toBeInTheDocument(); - expect(result.getByTestId('confirmModalTitleText')).toHaveTextContent('Delete attachment'); - expect(result.getByText('Delete')).toBeInTheDocument(); + expect(await screen.findByTestId('confirmModalTitleText')).toHaveTextContent( + 'Delete attachment' + ); + + expect(await screen.findByText('Delete')).toBeInTheDocument(); }); it('remove attachments correctly', async () => { - const result = appMock.render(); + appMock.render(); - expect(result.getByTestId('property-actions-user-action')).toBeInTheDocument(); + expect(await screen.findByTestId('property-actions-user-action')).toBeInTheDocument(); - userEvent.click(result.getByTestId('property-actions-user-action-ellipses')); + userEvent.click(await screen.findByTestId('property-actions-user-action-ellipses')); await waitForEuiPopoverOpen(); - expect(result.queryByTestId('property-actions-user-action-trash')).toBeInTheDocument(); + expect(await screen.findByTestId('property-actions-user-action-trash')).toBeInTheDocument(); + + userEvent.click(await screen.findByTestId('property-actions-user-action-trash')); - userEvent.click(result.getByTestId('property-actions-user-action-trash')); + expect(await screen.findByTestId('property-actions-confirm-modal')).toBeInTheDocument(); + + userEvent.click(screen.getByText('Delete')); await waitFor(() => { - expect(result.queryByTestId('property-actions-confirm-modal')).toBeInTheDocument(); + expect(props.onDelete).toHaveBeenCalled(); }); - - userEvent.click(result.getByText('Delete')); - expect(props.onDelete).toHaveBeenCalled(); }); it('does not show the property actions without delete permissions', async () => { appMock = createAppMockRenderer({ permissions: noCasesPermissions() }); - const result = appMock.render(); + appMock.render(); - expect(result.queryByTestId('property-actions-user-action')).not.toBeInTheDocument(); + expect(screen.queryByTestId('property-actions-user-action')).not.toBeInTheDocument(); }); it('does not show the property actions when hideDefaultActions is enabled', async () => { - const result = appMock.render( - - ); + appMock.render(); - expect(result.queryByTestId('property-actions-user-action')).not.toBeInTheDocument(); + expect(screen.queryByTestId('property-actions-user-action')).not.toBeInTheDocument(); }); it('does show the property actions with only delete permissions', async () => { appMock = createAppMockRenderer({ permissions: onlyDeleteCasesPermission() }); - const result = appMock.render(); + appMock.render(); - expect(result.getByTestId('property-actions-user-action')).toBeInTheDocument(); + expect(await screen.findByTestId('property-actions-user-action')).toBeInTheDocument(); }); it('renders correctly registered attachments', async () => { @@ -123,16 +122,19 @@ describe.skip('RegisteredAttachmentsPropertyActions', () => { }, ]; - const result = appMock.render( + appMock.render( ); - expect(result.getByTestId('property-actions-user-action')).toBeInTheDocument(); + expect(await screen.findByTestId('property-actions-user-action')).toBeInTheDocument(); - userEvent.click(result.getByTestId('property-actions-user-action-ellipses')); + userEvent.click(await screen.findByTestId('property-actions-user-action-ellipses')); await waitForEuiPopoverOpen(); - expect(result.getByTestId('property-actions-user-action-group').children.length).toBe(2); - expect(result.queryByTestId('property-actions-user-action-download')).toBeInTheDocument(); + expect((await screen.findByTestId('property-actions-user-action-group')).children.length).toBe( + 2 + ); + + expect(await screen.findByTestId('property-actions-user-action-download')).toBeInTheDocument(); }); });